Intereting Posts
Как вы произвольно перемещаете файлы в один каталог безопасно? Попытка подключиться к SSH-серверу на одном компьютере, и он работает нормально. Не с другой Не удается открыть как корневой терминал, так и nautilus (в Debian 7) после обновления графического драйвера Intel Где я могу найти исходный код libgio? Nginx Добавить защищенный флаг в файлы cookie с прокси-сервера Очень низкая производительность диска на Samba Как настроить почтовую команду для чтения Maildir вместо стандартного mbox на OpenBSD? Должны ли DNS (записи PTR) настраиваться по-разному для разных сетей ipv6? Как проверить, работает ли скрипт init.d? Добавление строки в файл через цепочку ssh Предоставление разговора FreeBSD. Как произносится rc.conf? Удалить старые файлы в каталоге, но не root Где параметр, который запрещает дублировать историю команд? Как выполнить код в новом сеансе tmux – из текущего сеанса? Загрузка дистрибутива

Установите разрешение по умолчанию для новых папок и файлов в Linux

Я использую OpenSuSE, и мой компьютер имеет только 2 учетных записи: root и me.I есть каталог /srv/www/htdocs/abc .

Я просто хочу настроить его так, чтобы при создании новых папок или файлов в этом каталоге у них были разрешения, установленные на 777.

Когда в этом каталоге создаются новые файлы, я должен снова установить их на 777, чтобы получить доступ к записи.

Я использую root и типа:

 chmod me /srv/www/htdocs 

Но я не работаю. Как я могу это сделать?

Использование chmod для изменения разрешений, команда chown предназначена для изменения права собственности на файлы и каталоги.

владение

Чтобы изменить право собственности на каталог, вы можете использовать следующую команду:

 $ sudo chown -R me /srv/www/htdocs 

ПРИМЕЧАНИЕ. Мы используем средство sudo для повышения наших привилегий до того же уровня, что и root для этих команд, без необходимости запускать root.

разрешений

Чтобы изменить разрешения для этого каталога:

 $ sudo chmod -R 777 /srv/www/htdocs 

Umask

Используя команду umask свой терминал так, чтобы при создании файлов и каталогов на их разрешения можно было немного повлиять. Следует соблюдать осторожность при использовании umask поскольку есть ситуации, когда они не будут давать вам разрешения точно так, как вы думаете.

Для каталога это кажется прекрасным:

 $ for i in `seq 1 7`;do echo "umask: 00$i"; umask 00$i; rm -fr blah; mkdir blah;ls -l|grep blah;done umask: 001 drwxrwxrw- 2 saml saml 4096 Jul 29 14:39 blah umask: 002 drwxrwxr-x 2 saml saml 4096 Jul 29 14:39 blah umask: 003 drwxrwxr-- 2 saml saml 4096 Jul 29 14:39 blah umask: 004 drwxrwx-wx 2 saml saml 4096 Jul 29 14:39 blah umask: 005 drwxrwx-w- 2 saml saml 4096 Jul 29 14:39 blah umask: 006 drwxrwx--x 2 saml saml 4096 Jul 29 14:39 blah umask: 007 drwxrwx--- 2 saml saml 4096 Jul 29 14:39 blah 

Однако он не позволит вам иметь файлы точно так, как вы могли бы намереваться, чтобы они были с определенными umasks. См. umask 006 например, ниже:

 $ for i in `seq 1 7`;do echo "umask: 00$i"; umask 00$i; rm -fr blah; touch blah;ls -l|grep blah;done umask: 001 -rw-rw-rw- 1 saml saml 0 Jul 29 14:40 blah umask: 002 -rw-rw-r-- 1 saml saml 0 Jul 29 14:40 blah umask: 003 -rw-rw-r-- 1 saml saml 0 Jul 29 14:40 blah umask: 004 -rw-rw--w- 1 saml saml 0 Jul 29 14:40 blah umask: 005 -rw-rw--w- 1 saml saml 0 Jul 29 14:40 blah umask: 006 -rw-rw---- 1 saml saml 0 Jul 29 14:40 blah umask: 007 -rw-rw---- 1 saml saml 0 Jul 29 14:40 blah 

Есть и другие, это просто подчеркнуть пример!

Итак, что нужно делать?

Учитывая, что вы имеете дело с каталогом Apache (на основе пути /srv/www/htdocs ), я бы /srv/www/htdocs группу Unix, которую пользователь и пользователь, с которыми работает Apache, оба являются членами. Вы можете использовать команду groups чтобы определить это:

 $ groups saml saml : saml vboxusers jupiter newgrp $ groups apache apache : apache 

Вы также можете использовать команду id :

 $ id saml uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter),10000(newgrp) $ id apache uid=48(apache) gid=48(apache) groups=48(apache) 

В моей системе Apache запускается пользователем apache . Глядя на этого пользователя, вы можете видеть, что он находится в одной группе apache . Таким образом, одним из способов было бы добавить пользователя в эту группу.

Например, добавьте me в группы apache :

 $ sudo usermod -a -G apache me 

Другим подходом было бы создание другой группы и добавление как apache и me к этой вторичной группе (например, apacheplus), а затем запуск этой команды в /srv/www/htdocs :

 $ sudo chgrp -R apacheplus /srv/www/htdocs