Когда я запускаю, chmod +w filename
он не дает разрешения на запись other
, он просто дает разрешение на запись user
и group
.
После выполнения этой команды
chmod +w testfile.txt
бегущие ls -l testfile.txt
отпечатки
-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt
но в случае +r
и +x
он работает правильно.
Я не хочу использовать chmod ugo+w filename
.
linux
command-line
permissions
chmod
Рави Севта
источник
источник
ugo
, используйтеa
.+w
не работает.askubuntu
ответе вы утверждаете, что ссылаетесь выше на то, что «это поведение предписано POSIX и, следовательно, не является ошибкой». Обращаем ваше внимание, что текст использования приложений POSIX не является нормативным и поэтому не является обязательным для POSIX.Ответы:
Ваша конкретная ситуация
В вашей конкретной ситуации, мы можем предположить , что ваш текущий
umask
является002
(это общее значение по умолчанию) , и это объясняет ваше удивление.В той конкретной ситуации, где
umask
значение 002 (все числа восьмеричные).+r
означает,ugo+r
потому что002 & 444
есть000
, что позволяет установить все биты+x
означает,ugo+x
потому что002 & 111
есть000
, что позволяет установить все биты+w
означаетug+w
потому , что002 & 222
есть002
, что предотвращает установку бита "o".Другие примеры
umask 022
+w
будет означатьu+w
.umask 007
+rwx
будет означатьug+rwx
.umask 077
+rwx
будет означатьu+rwx
.Что бы соответствовало вашим ожиданиям
Когда вы измените
umask
на000
, выполнивв вашем терминале, то
установит права на ugo + w.
Примечание
Как предлагает ilkkachu, обратите внимание, что
umask 000
это не означает, что каждый может читать и писать все ваши файлы.Но
umask 000
означает, что каждый, кто имеет какой-либо доступ к любой учетной записи пользователя на вашем компьютере (который может включать в себя программы, работающие с серверными службами ofc), может читать и записывать все файлы, которые вы делаете с этой маской, активной и не изменяются (если цепочка содержит каталоги вплоть до рута тоже им позволяют).источник
r
бит для тех сторон, где это позволяет umask. Это четко указано в руководствах, например, GNU chmod и FreeBSD chmod, а также в стандарте. То же самое для+x
. Потому+w
что вы правы, в случае этого конкретного umask.0
не означает, что все могут читать и записывать все ваши файлы, поскольку многие приложения создают файлы, которые являются особенно частными с режимом0600
, а это означает, что группа и другие не получают никакого доступа, независимо от значения umask.umask
важная часть того, как+r
ведет себя, а не sidenote. Кроме того, даже если принять umask002
,chmod +r
это не значитchmod ugo=r
, что это означаетchmod ugo+r
С:
Пермь добавляется к пользователю , группе и другим, но при этом применяется umask. Он гарантирует, что файлу не предоставлено больше разрешений, чем у вновь созданного файла.
Если вы хотите добавить права доступа к пользователю , группам и прочим независимо от umask, используйте
что коротко для
источник
Вам необходимо указать, кому вы даете разрешения, например
other
, используяchmod o+w testfile.txt
источник
+w
дает разрешение на все (пользователь, группа и другие).chmod a+w testfile.txt
. Используйтеu
для пользователя,g
для группы,o
для других иa
для всех.chmod a+w filename
,chmod +w filename
иchmod ugo+w filename
альтернативны друг к другу , то почему бы просто не использовать+w