В прошлом я всегда устанавливал umask
в ~/.profile
. Я установил a umask
из 077
таким образом, мои документы получают разрешение 600 (rw-------)
. Но установка этого в ~/.profile
больше работы в Ubuntu 17.04.
Таким образом, поскольку новые документы создаются на сессии гнома на Ubuntu 17.04, где я могу настроить так, чтобы они были созданы с разрешением 600?
Чтобы установить разрешения для всех каталогов и файлов, которые создаются любыми пользователями в любой день:
Новых файлов будет 600. Новых каталогов будет 700.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
Это буквально то, что говорит ваш ~/.profile
. Вы перелогали когда-то изменилось? Это должно работать нормально.
Также:
This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login exists.
На самом деле подтвердил проблему на только что установленном Ubuntu 17.04. Даже полное обновление все еще вызывает эту проблему, и даже ~/.bash_profile
игнорируется, кажется, есть проблема с интерпретатором команд, не читающим эти файлы после входа в систему.
Вы можете использовать ~/.bashrc
на данный момент, который по-прежнему работает нормально и читается во время входа в систему.
Так что после небольшого погружения в него, кажется, что bash больше не запускается по умолчанию с параметром --login, что означает, что он не читает ~ / .profile. Запуск нового bash с помощью umask в ~ / .profile с помощью bash --login
устанавливает umask, правильно запускающий bash без него, хотя игнорирует ~ / .profile. Не уверен, что изменилось, но мне кажется, что это ошибка, если она не была намеренно изменена.
Согласно справочным страницам , есть несколько мест, где мы можем установить umask
для модуля PAM, чтобы найти; это даже дает пример. Я установлю это в /etc/pam.d/login
. Обратите внимание, что этот файл не существует в моей версии Ubuntu, и в этом случае мы можем его создать.
$ sudo sh -c "echo 'session optional pam_umask.so umask=0027' >> /etc/default/login"
$ more /etc/default/login
session optional pam_umask.so umask=0027
Теперь, если мы перезапустим и попросим umask в терминале, мы все равно получим 0022
, а не 0027
, который был установлен. См. Ошибка № 1685754 .
Но если мы откроем приложение, например, текстовый редактор, и сохраним файл, мы заметим, что новый umask настроен правильно. Открывайте его из меню, а не из терминала, так как кажется, что он получил (плохо) umask
из терминала.
$ touch terminal-file
$ ls -l
-rw-r----- 1 daniel daniel 0 jan 28 21:21 gedit-file
-rw-r--r-- 1 daniel daniel 0 jan 28 21:22 terminal-file
При использовании GDM он не читает ~/.profile
как LightDM делает. И терминал обычно открывает оболочку невхода в систему. Результирующий эффект - это ~/.profile
не загружается вообще, когда Вы открываете терминал после входа в систему использования GDM.
Также:
~/.bashrc
, или В Ubuntu 18.04.3 я попытался создать / etc / default / login
с сеансом необязательный pam_umask.so umask = 0027
, как говорит Даниэль но у меня это не сработало, вместо этого я изменил umask в /etc/login.defs
, и это сработало.
Я изменил значение umask в 002, и теперь все пользователи создают файлы с полным разрешением также для своей собственной группы.
У меня есть обходной путь, по крайней мере, для Fedora 31:
sudo vi /etc/profile.d/umask.sh
umask <your_umask>
sudo vi /etc/login.defs
UMASK <your_umask>
sudo vi /usr/local/bin/systemd-user
/usr/lib/systemd/systemd --user
sudo chmod a+x /usr/local/bin/systemd-user
sudo vi /usr/lib/systemd/system/user@.service
ExecStart=-/usr/local/bin/systemd-user