Привет всем!
Я создал пользователя user (группа ftp), который заходит в свой домашний каталог /home/ftp и создает папки по умолчанию с правами доступа -755. Подскажите пожалуйста, как сделать так, чтобы пользователь user всегда по умолчанию создавал каталог с правами -777?
Т.к. не очень удобно каждый раз менять права с помощью chmod -R 777 /home/ftp/*
Создание пользователем каталога с правами доступа по умолчанию
Добавьте в файл /home/ftp/.bashrc, если вы используете Bash, разумеется, строку
umask 0
В /etc/profile строчку:
umask 022
поменять на что-то более подходящее случаю:
if [ "$(id -un)" == "user" ]
then umask 0
else umask 022
fi
или
if [ "$(id -u)" == "1001" ]
then umask 0
else umask 022
fi
, где 1001 -- это идентификатор пользователя user.
Или просто, когда нужно подобное поведение, выдать от пользователя umask 0.
Добавьте в файл /home/ftp/.bashrc, если вы используете Bash, разумеется, строку
такого файла нет, и под рутом тоже не видится
Создайте.такого файла нет
Lupo Alberto
bormant
Сделал по вашим рекомендациям, результата нет. каталоги по прежнему создаются с правами -755.
Сделал по вашим рекомендациям, результата нет. каталоги по прежнему создаются с правами -755.
После этого нужно перелогиниться. Это, во-первых.
Во-вторых, покажите
ls -al /home/ftp
awk -F':' '/ftp/ {print $7}' /etc/passwd
admin@test:~$ ls -al /home/ftp
drwxrwxrwx 4 root root 4096 2012-07-04 14:09 .
drwxr-xr-x 4 root root 4096 2011-01-01 01:00 ..
drwxrwxrwx 3 admin users 4096 2012-07-04 14:09 11234
drwxrwxrwx 5 root root 4096 2012-07-04 12:50 config
admin@test:~$ awk -F':' '/ftp/ {print $7}' /etc/passwd
/bin/false
Вроде бы все получилось, пользователь в корне создает каталоги с правами -777, но если создать еще один каталог внутри созданного, то права будут -755.
...и где файл .bashrc в каталоге /home/ftp?
/bin/false
...хотя у пользователя ftp всё равно рабочей оболочки нет.
у пользователя ftp
поэтому наличие или отсутствие шелла у пользователя ftp отношения к делу не имеет.создал пользователя user (группа ftp)
Я создал пользователя user (группа ftp), который заходит в свой домашний каталог /home/ftp и создает папки по умолчанию с правами доступа -755.
Что-то я запутался...
Как называется пользователь, для которого вы настраиваете права?
поэтому наличие или отсутствие шелла у пользователя ftp отношения к делу не имеет.
Уже заметил :(
Lupo Alberto
Пожалуйста
user@test:~/test$ awk -F':' '/ftp/ {print $7}' /etc/passwd
/bin/false
/bin/bash
user@est:~/test$ ls -al /home/ftp
итого 56
drwxrwxrwx 12 root root 4096 2012-07-04 14:38 .
drwxr-xr-x 4 root root 4096 2011-01-01 00:00 ..
-rw------- 1 user ftp 55 2012-07-04 14:12 .bash_history
-rw-rw-rw- 1 user ftp 7 2012-07-04 14:35 .bashrc
drwxrwxrwx 2 user ftp 4096 2012-07-04 14:03 .mc
drwxr-xr-x 2 user ftp 4096 2012-07-04 14:07 123
drwxr-xr-x 2 user ftp 4096 2012-07-04 14:38 334444
drwxrwxrwx 32 user ftp 4096 2012-06-29 10:27 Backup
drwxrwxrwx 31 root root 4096 2012-06-29 11:37 config
drwxrwxrwx 5 user ftp 4096 2012-07-04 08:36 config_mks
drwxrwxrwx 5 root root 4096 2012-06-29 13:49 distrib
drwxrwxrwx 22 root root 4096 2012-07-04 10:28 docum
drwxrwxrwx 31 user ftp 4096 2012-07-04 11:50 screen
drwxrwxrwx 3 user ftp 4096 2012-07-04 14:37 test
Как называется пользователь, для которого вы настраиваете права?
пользователь user группа ftp
P.S. Извиняюсь за не внимательность, когда каталоги создаются в bash, то права выставляются -777, а когда делаю через TotalCommander под именем user создаются с -755
пользователь user группа ftp
В домашнем каталоге пользователя user создайте файл .bashrc со строкой
umask 0
Домашний каталог пользователя — шестое поле в строке с именем пользователя файла /etc/passwd; рабочая оболочка — там же седьмое поле.
В домашнем каталоге пользователя user создайте файл .bashrc со строкойфайл bashrc создан, строка umask 0 добавлена, домашний каталог для user и есть /home/ftp
домашний каталог для user и есть /home/ftp
...и всё же покажите ;)
grep user /etc/passwd
а когда делаю через TotalCommander под именем user создаются с -755
Тут я точно не помощник :(
avaddon66,
чтобы советы не выглядели шаманством, коротенечко поясню, что зачем и где почитать.
1) вызов
umask 0
устанавливает umask текущего процесса в 0, в результате чего создаваемые процессом каталоги получают права drwxrwxrwx, а файлы -rw-rw-rw-.
2) все остальные "приседания" направлены на то, что бы вызов "umask 0" делался без участия пользователя. Возможные кандидаты: скрипты, выполняемые при логине пользователя: /etc/profile, /etc/profile.d/*, ~/.profile, ~/.bashrc, ...
Строго говоря, это очень плохая идея, поскольку все остальные файлы этим пользователем будут создаваться с теми же правами -- "всё для всех", а выдать когда нужно "umask 0" и по завершении "umask 022" руки не отвалятся.
Про umask: man umask (ru), http://ru.wikipedia.org/wiki/Umask
Про выполняемое при старте bash: man bash (ru)
Разобрался, поправил в файле /etc/proftp.conf значение umask на 011, этого более чем достаточно, все создается как мне нужно.
Спасибо всем!