Найдите и различия между - перманент/6000 и - перманент/u+s

Ваша оболочка имеет встроенное pwd, который пытается быть "умным". После того, как Вы сделали a cd к символьной ссылке внутреннее pwd фальсифицирует вывод, как будто Вы переместились в реальный каталог.

Передайте -P опция к pwd, т.е. выполненный pwd -P. -P опция (для “физического”) говорит pwd не сделать любое отслеживание символьной ссылки и отобразить “реальный” путь к каталогу.

С другой стороны, должен также быть реальный двоичный файл pwd, который не делает (и даже не в состоянии сделать), этот вид волшебства. Просто используйте тот двоичный файл explicity:

$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
$ mkdir a
$ ln -s a b
$ cd b
$ pwd
/home/michas/b
$ /bin/pwd
/home/michas/a
6
03.10.2013, 00:53
2 ответа

Большинство людей не знает, но полномочия Unix являются на самом деле не только Пользователем, Группой и Другими (rwx). Эти 3 триады являются типичными полномочиями, которые позволяют пользователям, группам и другому пользовательскому доступу к файлам и каталогам. Однако существует также группа битов, которые предшествуют Пользовательским битам. Эти биты упоминаются как "Специальные Режимы".

Это - больше краткой нотации, что Вы не должны явно устанавливать их при контакте с инструментом такого как chmod.

$ chmod 644

На самом деле эквивалентно:

$ chmod 0644

Вот список битов:

выборка названная статья Википедии: chmod

Flag                Octal value     Purpose
----                -----------     -------
S_ISUID             04000           Set user ID on execution
S_ISGID             02000           Set group ID on execution
S_ISVTX             01000           Sticky bit
S_IRUSR, S_IREAD    00400           Read by owner
S_IWUSR, S_IWRITE   00200           Write by owner
S_IXUSR, S_IEXEC    00100           Execute/search by owner
S_IRGRP             00040           Read by group
S_IWGRP             00020           Write by group
S_IXGRP             00010           Execute/search by group
S_IROTH             00004           Read by others
S_IWOTH             00002           Write by others
S_IXOTH             00001           Execute/search by others

Ваш вопрос

Таким образом в Вашей первой команде Вы ищете u+s, который удался бы, чтобы быть битом 04000. При использовании числовой нотации, Вы просите биты 04000 И 02000. Это дало бы Вам файлы с пользователем или группой setuid набор битов.

Дальнейшее чтение

Я высоко предлагаю любого, который хочет понять полномочия лучше в Unix, прочитать страницу Wikipedia о chmod. Это ломает его очень просто и является превосходной ссылкой, когда Вы забываете.

Ссылки

9
27.01.2020, 20:23

Режим 6000 u+s,g+s, не просто u+s (который был бы 4000).

find / -perm /u+s или find / -perm /4000 только находит файлы, которые имеют setuid набор битов. find / -perm /u+s или find / -perm /6000 находит файлы, которые имеют setuid набор битов или setgid набор битов.

3
27.01.2020, 20:23

Теги

Похожие вопросы