Как установить значение по умолчанию umask в Ubuntu 17.04?

В прошлом я всегда устанавливал umask в ~/.profile. Я установил a umask из 077 таким образом, мои документы получают разрешение 600 (rw-------). Но установка этого в ~/.profile больше работы в Ubuntu 17.04.

Таким образом, поскольку новые документы создаются на сессии гнома на Ubuntu 17.04, где я могу настроить так, чтобы они были созданы с разрешением 600?

5
задан 27 June 2017 в 04:45

6 ответов

Чтобы установить разрешения для всех каталогов и файлов, которые создаются любыми пользователями в любой день:

  1. sudo nano /etc/pam.d/common-session
  2. Найдите строка с "необязательным сеансом pam_umask.so"
  3. Измените это на "необязательный сеанс pam_umask.so umask = 0077"
  4. Сохраните файл.
  5. Перезагрузка.

Новых файлов будет 600. Новых каталогов будет 700.

5
ответ дан 23 November 2019 в 09:05
# 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. Не уверен, что изменилось, но мне кажется, что это ошибка, если она не была намеренно изменена.

0
ответ дан 23 November 2019 в 09:05

Ubuntu 18.04, должен работать на 17.04 и другие

Согласно справочным страницам , есть несколько мест, где мы можем установить 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

Evil Bug

Теперь, если мы перезапустим и попросим 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

Ссылки

2
ответ дан 23 November 2019 в 09:05

При использовании GDM он не читает ~/.profile как LightDM делает. И терминал обычно открывает оболочку невхода в систему. Результирующий эффект - это ~/.profile не загружается вообще, когда Вы открываете терминал после входа в систему использования GDM.

Также:

  • вставьте свои настройки ~/.bashrc, или
  • установите свой терминал для запуска оболочки входа в систему, или
  • переключитесь на LightDM
0
ответ дан 23 November 2019 в 09:05

В Ubuntu 18.04.3 я попытался создать / etc / default / login с сеансом необязательный pam_umask.so umask = 0027 , как говорит Даниэль но у меня это не сработало, вместо этого я изменил umask в /etc/login.defs , и это сработало.

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

0
ответ дан 10 December 2019 в 14:07

У меня есть обходной путь, по крайней мере, для 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
0
ответ дан 10 January 2020 в 08:34

Другие вопросы по тегам:

Похожие вопросы: