Linux, почему я не могу писать, даже если у меня есть разрешения группы?
Я хочу создать файл в каталоге, принадлежащем группе сотрудников, членом которой я являюсь. Почему я не могу этого сделать?
bmccann@bmccann-htpc:~$ ls -l /usr/local/lib/R/
total 4
drwxrwsr-x 2 root staff 4096 2010-07-31 16:21 site-library
bmccann@bmccann-htpc:~$ id -nG bmccann
bmccann adm dialout cdrom plugdev staff lpadmin admin sambashare
bmccann@bmccann-htpc:~$ touch /usr/local/lib/R/site-library/tmp
touch: cannot touch `/usr/local/lib/R/site-library/tmp': Permission denied
5 ответов
вы вышли из системы и снова вошли в систему после внесения изменений в группу? См.:
супер ответ пользователя с участием сенсорных разрешений сбой
Почему пользователь Linux не может редактировать файлы в группе, частью которой он является?
Я использую Ubuntu 12.04 и имел ту же проблему, когда пользователь не может писать в файл, к которому ему разрешен групповой доступ. Например:
whoami //I am user el
el
touch /foobar/test_file //make a new file
sudo chown root:www-data /foobar/test_file //User=root group=www-data
sudo chmod 474 /foobar/test_file //owner and others get only read,
//group gets rwx
sudo groupadd www-data //create group called www-data
groups //take a look at the groups and see
www-data //www-data exists.
groups el //see that el is part of www-data
el : www-data
перезагрузите терминал сейчас, чтобы обеспечить пользователей и групп влияния. Логин, Эл.
vi /foobar/test_file //try to edit the file.
выдает предупреждение:
Warning: W10: Warning: Changing a readonly file"
что? Я все сделал правильно, почему бы и нет? работа?
ответ:
выполните полную перезагрузку компьютера. Остановки терминала недостаточно, чтобы решить эти проблемы.
Я думаю, что apache2 также использует группу www-data, поэтому задача каким-то образом препятствовала правильному применению пользователей и групп. Вам нужно не только выйти из системы, но и остановить и перезапустить службы, использующие вашу группу. Если перезагрузка не получает его, у вас есть большие проблемы.
используйте Linux ACL (списки управления доступом)-это более мелкозернистая версия системы разрешений,
setfacl -R -m 'group:staff:rwx' -m 'd:group:staff:rwx' /usr/local/lib/R/
это устанавливает как активные права для каталога, так и права по умолчанию для всего, что создано внутри.
это не работает без relogin, если вы только что добавили себя в staff
group, но вы можете установить разрешение только для себя для текущего сеанса.
у меня была такая же проблема, проверьте, есть ли в папке еще правила ACL или нет!
если вы видите + (знак плюс), когда вы перечисляете папку, это означает, что у нее есть специальные правила доступа. Например:
[user_in_apache_group@web02 html]$ ls -l
total 16
drwxrwxr-x 16 apache apache 4096 Sep 4 13:46 ilias
drwxrwxr-x+ 15 apache apache 4096 Sep 4 13:46 ilias5
вид разрешения:
[user_in_apache_group@web02 html] getfacl ilias5
# file: ilias5
# owner: apache
# group: apache
user::rwx
user:user_in_apache_group:r-x
group::rwx
mask::rwx
other::r-x
Это означает, что мой пользователь (user_in_apache_group) не имеет разрешения на запись для этой папки.
решение-это то, что @techtonik сказал, добавьте разрешение на запись для пользователь:
[user_in_apache_group@web02 html]$ sudo setfacl -m u:user_in_apache_group:rwx ./ilias5
проверьте разрешение еще раз:
[user_in_apache_group@web02 html] getfacl ilias5
...
user:user_in_apache_group:rwx
...
надеюсь, что это помогает. ;)
у меня была проблема, когда пользователь не может получить доступ к /foo/bar/baz
каталог, даже когда у него были разрешения, потому что у него не было доступа к