Дайте определенному пользователю разрешение на запись в папку, используя обозначение + w

155

Я знаю, что могу назначить разрешение на запись владельцу / группе / другим, например так:

chmod u+w myfolder

Могу ли я указать конкретного пользователя здесь? Некоторым нравится это:

chmod username u+w myfolder
Максим Корецкий
источник
Я не думаю, что это возможно. Почему бы вам просто не добавить пользователя в группу?
Эмиль

Ответы:

159

Если вы хотите сменить пользователя, владеющего этим файлом или каталогом (папкой), вам придется использовать команду chown. Например, если вы запустите

sudo chown username: myfolder

пользователь, владеющий myfolder, будет именем пользователя. Тогда вы можете выполнить

sudo chmod u+w myfolder

добавить разрешение на запись для имени пользователя user.

Но если вы хотите добавить этого пользователя в группу, связанную с «myfolder», вы можете запустить

sudo usermod -a -G groupname username

а затем выполнить

sudo chmod g+w myfolder

добавить разрешение на запись в группу.

Чаро
источник
Есть способ, которым оба пользователя будут иметь доступ к папке, а группа не нужна; это было предложено в ответе на тот же вопрос здесь: superuser.com/a/235398/191720.
Луан Нико
Могу ли я сделать это без sudo?
Бекко
1
@becko: Вы можете, если вы перейдете в корневую оболочку.
Чаро
1
@Charo я имел ввиду без рута
becko
1
@AER: в первой команде, если после двоеточия следует usernameгруппа-владелец, также изменяется на username(если вы опустите такое двоеточие, группа-владелец не изменится).
Чаро
192

Вы можете использовать setfacl:

setfacl -m u:username:rwx myfolder

Это устанавливает разрешения для конкретных пользователей, не меняя владельца каталога.

Проверьте man-страницу для получения дополнительной информации и примеров.

user3689208
источник
8
Идеальный ответ! Также setfaclдоступно на CentOS ( yum -y install acl) и FreeBSD.
Вьетнам
7
просто примечание: setfacl = установить ACL для файлов, ACL = список контроля доступа, следовательно, для краткости "setFacl" - проще помнить, я думаю.
Явар Муртаза
12
Если вы хотите применить его рекурсивно ко всем подкаталогам: добавьте флаг -R следующим образом:setfacl -R -m u:username:rwx myfolder
Jose A
Самый
1
Есть ли способ предоставить пользователю rwбез изменения каких-либо существующих xразрешений, если он работает с несколькими файлами или рекурсивно?
Ци Фан
8

Нет, это невозможно. Вы можете изменить владельца файла с помощью

[sudo] chown username: foldername

или вы можете добавить пользователя в группу, которой принадлежит файл с

usermod -a -G {group-name} username
Pabi
источник
useradd -G {group-name} usernameговорит мне, что имя пользователя уже существует
Erdal G.
я пробовал это, но мой пользователь все еще не может написать в эту папку
Sonic Soul