Устранение проблем с установкой sudo между 14.04 и 16.04

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

Итак, я провел простой тест: я создал каталог с использованием sudo в 14.04 и посмотрел на разрешения :

sudo mkdir test_14_04 ls -ld test_14_04/ #returns: drwxr-xr-x 2 root root 4096 Jan 3 05:57 test_14_04/

Тогда я сделал то же самое в 16.04, но вместо этого получаю:

#returns: drwxr-x--- 2 root root 4096 Jan 3 06:00 test_16_04/

Как вы можете видеть, разрешение по умолчанию в мире читается в 14.04, но не в 16.04. Таким образом, это может быть проблемой с разрешениями пакета sudo -installed.

Как я могу это исправить?

PS: Моя версия 16.04 Ubuntu:

Distributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release: 16.04 Codename: xenial

и моя версия 14.04:

Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: trusty
4
задан 3 January 2018 в 16:23

6 ответов

О вашем вопросе:

Выполнить sudo visudo и добавить следующие строки:

`Defaults umask=0022`
`Defaults umask_override`

umask_override (см. man-страницу sudoers):

If set, sudo установит umask, как указано sudoers без изменений. Это позволяет указать более разрешающую umask в sudoers, чем собственный umask пользователя, и соответствует историческому поведению. Если umask_override не установлен, sudo установит umask как объединение пользовательской umask и того, что указано в sudoers. По умолчанию этот флаг отключен. Если установлено, sudo будет запускать команду в псевдо-pty, даже если ведение журнала ввода-вывода не исчезнет. Вредоносная программа, выполняемая в sudo, может, вероятно, разблокировать фоновый процесс, который сохраняется на конечном устройстве пользователя после завершения основной программы. Использование этого параметра сделает невозможным. По умолчанию этот флаг отключен.

Надеюсь, это поможет, удачи!

1
ответ дан 22 May 2018 в 15:47

О вашем вопросе:

Выполнить sudo visudo и добавить следующие строки:

`Defaults umask=0022` `Defaults umask_override`

umask_override (см. man-страницу sudoers):

If set, sudo установит umask, как указано sudoers без изменений. Это позволяет указать более разрешающую umask в sudoers, чем собственный umask пользователя, и соответствует историческому поведению. Если umask_override не установлен, sudo установит umask как объединение пользовательской umask и того, что указано в sudoers. По умолчанию этот флаг отключен. Если установлено, sudo будет запускать команду в псевдо-pty, даже если ведение журнала ввода-вывода не исчезнет. Вредоносная программа, выполняемая в sudo, может, вероятно, разблокировать фоновый процесс, который сохраняется на конечном устройстве пользователя после завершения основной программы. Использование этого параметра сделает невозможным. По умолчанию этот флаг отключен.

Надеюсь, это поможет, удачи!

1
ответ дан 17 July 2018 в 23:57

О вашем вопросе:

Выполнить sudo visudo и добавить следующие строки:

`Defaults umask=0022` `Defaults umask_override`

umask_override (см. man-страницу sudoers):

If set, sudo установит umask, как указано sudoers без изменений. Это позволяет указать более разрешающую umask в sudoers, чем собственный umask пользователя, и соответствует историческому поведению. Если umask_override не установлен, sudo установит umask как объединение пользовательской umask и того, что указано в sudoers. По умолчанию этот флаг отключен. Если установлено, sudo будет запускать команду в псевдо-pty, даже если ведение журнала ввода-вывода не исчезнет. Вредоносная программа, выполняемая в sudo, может, вероятно, разблокировать фоновый процесс, который сохраняется на конечном устройстве пользователя после завершения основной программы. Использование этого параметра сделает невозможным. По умолчанию этот флаг отключен.

Надеюсь, это поможет, удачи!

1
ответ дан 24 July 2018 в 17:08

Проблема, с которой вы сталкиваетесь, по-видимому, со значением по умолчанию root umask

Разрешения, которые были созданы в версии 14.04, равны umask из 0022, которые если значение по умолчанию root из umask

# umask
0022

Кажется, что ваш umask по умолчанию umask равен 0027, который можно проверить, запустив в root ]:

umask

, чтобы изменить поведение по умолчанию, вам нужно будет проверить скрипты запуска root (profile, login и т. д.) и найти, где это значение было установлено , и изменить его как:

umask 0022

Вместо:

umask 0027

Дополнительная информация может быть найдена при понимании использования значения linux umask

[ ! d7]

Пример:

root@ubuntu:~# umask
0022
root@ubuntu:~# mkdir /tmp/z123
root@ubuntu:~# ll -ld /tmp/z123
drwxr-xr-x 2 root root 4096 Jan  3 14:51 /tmp/z123/
root@ubuntu:~# umask 0027
root@ubuntu:~# umask
0027
root@ubuntu:~# mkdir /tmp/a123
root@ubuntu:~# ll -ld /tmp/a123
drwxr-x--- 2 root root 4096 Jan  3 14:54 /tmp/a123/
6
ответ дан 22 May 2018 в 15:47
  • 1
    Это не работает для sudo. Я добавил umask 0022 в /root/.bashrc, и это работает для root, но это не повлияло на разрешения файла по умолчанию для sudo. – kingaj 3 January 2018 в 22:44

Проблема, с которой вы сталкиваетесь, по-видимому, со значением по умолчанию root umask

Разрешения, которые были созданы в версии 14.04, равны umask из 0022, которые если значение по умолчанию root из umask

# umask 0022

Кажется, что ваш umask по умолчанию umask равен 0027, который можно проверить, запустив в root ]:

umask

, чтобы изменить поведение по умолчанию, вам нужно будет проверить скрипты запуска root (profile, login и т. д.) и найти, где это значение было установлено , и изменить его как:

umask 0022

Вместо:

umask 0027

Дополнительная информация может быть найдена при понимании использования значения linux umask

[ ! d7]

Пример:

root@ubuntu:~# umask 0022 root@ubuntu:~# mkdir /tmp/z123 root@ubuntu:~# ll -ld /tmp/z123 drwxr-xr-x 2 root root 4096 Jan 3 14:51 /tmp/z123/ root@ubuntu:~# umask 0027 root@ubuntu:~# umask 0027 root@ubuntu:~# mkdir /tmp/a123 root@ubuntu:~# ll -ld /tmp/a123 drwxr-x--- 2 root root 4096 Jan 3 14:54 /tmp/a123/
6
ответ дан 17 July 2018 в 23:57

Проблема, с которой вы сталкиваетесь, по-видимому, со значением по умолчанию root umask

Разрешения, которые были созданы в версии 14.04, равны umask из 0022, которые если значение по умолчанию root из umask

# umask 0022

Кажется, что ваш umask по умолчанию umask равен 0027, который можно проверить, запустив в root ]:

umask

, чтобы изменить поведение по умолчанию, вам нужно будет проверить скрипты запуска root (profile, login и т. д.) и найти, где это значение было установлено , и изменить его как:

umask 0022

Вместо:

umask 0027

Дополнительная информация может быть найдена при понимании использования значения linux umask

[ ! d7]

Пример:

root@ubuntu:~# umask 0022 root@ubuntu:~# mkdir /tmp/z123 root@ubuntu:~# ll -ld /tmp/z123 drwxr-xr-x 2 root root 4096 Jan 3 14:51 /tmp/z123/ root@ubuntu:~# umask 0027 root@ubuntu:~# umask 0027 root@ubuntu:~# mkdir /tmp/a123 root@ubuntu:~# ll -ld /tmp/a123 drwxr-x--- 2 root root 4096 Jan 3 14:54 /tmp/a123/
6
ответ дан 24 July 2018 в 17:08
  • 1
    Это не работает для sudo. Я добавил umask 0022 в /root/.bashrc, и это работает для root, но это не повлияло на разрешения файла по умолчанию для sudo. – kingaj 3 January 2018 в 22:44

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

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