LinuxForum.Fans
Тема

Создание пользователем каталога с правами доступа по умолчанию

Автор: mil612 20 сообщений 7874 просмотров
#262871

Привет всем!
Я создал пользователя user (группа ftp), который заходит в свой домашний каталог /home/ftp и создает папки по умолчанию с правами доступа -755. Подскажите пожалуйста, как сделать так, чтобы пользователь user всегда по умолчанию создавал каталог с правами -777?
Т.к. не очень удобно каждый раз менять права с помощью chmod -R 777 /home/ftp/*

#262878

Добавьте в файл /home/ftp/.bashrc, если вы используете Bash, разумеется, строку

text

umask 0
#262879

В /etc/profile строчку:

text

umask 022

поменять на что-то более подходящее случаю:

text

if [ "$(id -un)" == "user" ]
then umask 0
else umask 022
fi

или

text

if [ "$(id -u)" == "1001" ]
then umask 0
else umask 022
fi

, где 1001 -- это идентификатор пользователя user.
Или просто, когда нужно подобное поведение, выдать от пользователя umask 0.

#262880
Lupo Alberto написал:
Добавьте в файл /home/ftp/.bashrc, если вы используете Bash, разумеется, строку

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

#262881

"avaddon66" написал:
такого файла нет
Создайте.
#262889

Lupo Alberto
bormant
Сделал по вашим рекомендациям, результата нет. каталоги по прежнему создаются с правами -755.

#262894
"avaddon66" написал:
Сделал по вашим рекомендациям, результата нет. каталоги по прежнему создаются с правами -755.

После этого нужно перелогиниться. Это, во-первых.
Во-вторых, покажите

text

ls -al /home/ftp
text

awk -F':' '/ftp/ {print $7}' /etc/passwd
#262899
text
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.

#262902

...и где файл .bashrc в каталоге /home/ftp?

#262904
"avaddon66" написал:
/bin/false

...хотя у пользователя ftp всё равно рабочей оболочки нет.

#262905

"Lupo Alberto" написал:
у пользователя ftp
"avaddon66" написал:
создал пользователя user (группа ftp)
поэтому наличие или отсутствие шелла у пользователя ftp отношения к делу не имеет.
#262906
"avaddon66" написал:
Я создал пользователя user (группа ftp), который заходит в свой домашний каталог /home/ftp и создает папки по умолчанию с правами доступа -755.

Что-то я запутался...
Как называется пользователь, для которого вы настраиваете права?

#262907
"bormant" написал:
поэтому наличие или отсутствие шелла у пользователя ftp отношения к делу не имеет.

Уже заметил :(

#262910

Lupo Alberto
Пожалуйста

text
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

#262913
"avaddon66" написал:
пользователь user группа ftp

В домашнем каталоге пользователя user создайте файл .bashrc со строкой

text

umask 0

Домашний каталог пользователя — шестое поле в строке с именем пользователя файла /etc/passwd; рабочая оболочка — там же седьмое поле.

#262915
text
В домашнем каталоге пользователя user создайте файл .bashrc со строкой

файл bashrc создан, строка umask 0 добавлена, домашний каталог для user и есть /home/ftp

#262916
"avaddon66" написал:
домашний каталог для user и есть /home/ftp

...и всё же покажите ;)

text

grep user /etc/passwd
#262917
"avaddon66" написал:
а когда делаю через TotalCommander под именем user создаются с -755

Тут я точно не помощник :(

#262922

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)

#262974

Разобрался, поправил в файле /etc/proftp.conf значение umask на 011, этого более чем достаточно, все создается как мне нужно.
Спасибо всем!

Войдите или зарегистрируйтесь, чтобы ответить.