Форум русскоязычного сообщества Ubuntu


Автор Тема: При установке umask 022 маска устанавливается 002  (Прочитано 1084 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SNIKERSMRG

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
  • Хм...
    • Просмотр профиля
Добрый день.

Скажите пожалуйста только у меня такая ерунда получается ?

В файле /etc/login.defs устанавливаю UMASK 022 или 0022, перезагружаю ноутбук, и ввожу в терминале: umask
на что получаю ответ: 0002

Но мне не нужно 0002, мне нужно дефолтное 0022. Как же мне восстановить дефолтные настройки ?
И кстати обязательно перезагружаться чтобы маска обновилась ? Нет команды типа service umask restart ?

До этого устанавливал маску 0027 через /etc/login.defs чтобы посмотреть что получится, но потом решул вернуть как было.
Notebook Samsung NP350V5C: 1366x768, Core i5 3210m, 6Gb Ram, 750Gb HDD, Radeon 7670m, Ubuntu 16.04

quatro

  • Гость
мне не нужно 0002, мне нужно дефолтное 0022.

Сам раньше не интересовался, сейчас поискал: umask

В частности про дефолтность вот здесь Что такое 0022 и 0002? говорится:

"По умолчанию umask 0002 используется для обычного пользователя. С этой маской права по умолчанию, для директории, равны 775, а для файла 664.

Для суперпользователя (root) umask по умолчанию равен 0022. С этой маской права по умолчанию, для директории, равны 755, а для файла 644."

Надо как для root?

Оффлайн SNIKERSMRG

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
  • Хм...
    • Просмотр профиля
anchos, ага, надо как для root :)

Я так понимаю в этом конфигурационном файле можно указывать любые маски, и они будут работать. Все кроме 022.
Попробовал указать маску 027, установилась без проблем. umask показал 0027, установил 0022, показал 0002.

- можно каким-нибудь способом задать маску отдельно для папок и отдельно для файлов ?
- я так понимаю в официальной документации на сайте ubuntu.ru нет ни одной статьи про umask, только про chmod ?
Notebook Samsung NP350V5C: 1366x768, Core i5 3210m, 6Gb Ram, 750Gb HDD, Radeon 7670m, Ubuntu 16.04

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Ещё umask устанавливают в ~/.profile
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

quatro

  • Гость
Почитал по найденным ссылкам про umask. Вот что в частности пишут:

"биты в umask отмечают - какие биты прав доступа НЕ надо ставить при создании файла. То есть, если вы хотите, чтобы у категории "все остальные" вообще не было никаких прав, а "группе допущенных" не ставился бит разрешающий запись, то umask должна выглядеть как 027."

"Если каждую группу из трех бит (что соответствует отдельной категории в правах доступа) рассматривать как двоичное число, то "свернув" их поотдельности в десятичные цифры мы получим число из трех цифр, которое и отражает значение всех битов в permissions. Точнее, получается не десятичное, а восьмеричное представление прав доступа, но, если вы мало знакомы с восьмеричной системой счисления, то можете просто рассматривать это число как три отдельных десятичных цифры."

"по умолчанию в командных файлах, которые выполняются при входе в систему, у всех юзеров (включая root'а) вставлена команда, которая задает umask равной 022. То есть отменяются только биты разрешения записи для группы и "всех остальных". Если вас это не устраивает, вы можете изменить аргумент в соответствующем файле (обычно это файл .login в домашней директории юзера) или поменять параметр umask в любой момент вручную"

Годятся ли все эти утверждения для Ubuntu не берусь судить. Но если годятся, то обратил бы внимание на такое утверждение "выполняются при входе в систему, у всех юзеров (включая root'а)"

Оффлайн SNIKERSMRG

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
  • Хм...
    • Просмотр профиля
Azure, вот содержимое файла .profile в моем домашнем каталоге

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"



Я так понимаю раз umask закомментирован, значит маска берется из /etc/login.defs ?

Пользователь добавил сообщение 02 Ноябрь 2016, 15:44:48:
anchos, первые два абзаца мне абсолютно понятны, я в курсе как назначать определенные права, и что 111 110 000 равно rwx rw- ---

Цитировать
"по умолчанию в командных файлах, которые выполняются при входе в систему, у всех юзеров (включая root'а) вставлена команда, которая задает umask равной 022. То есть отменяются только биты разрешения записи для группы и "всех остальных". Если вас это не устраивает, вы можете изменить аргумент в соответствующем файле (обычно это файл .login в домашней директории юзера) или поменять параметр umask в любой момент вручную"

В домашней директории такого файла к сожалению у меня нет. Не ужели так сложно вернуть в umask равный 022 ?
Я вот думаю, если вовсе удалить значение указанное в поле UMASK в /etc/login.defs будет ли использоваться дефолтное 22 ?
Щас проверю и отпишусь.

p.s. удалил значение из поля UMASK и ребутнулся, umask все равно остался 0002.
Попробую удалить строку UMASK целиком

=================================

Ура ! Наконец то проблему решил !

Удаление строки UMASK из /etc/login.defs вернуло маску 0022 на место :)
Правда строки umask в /etc/login.defs больше нет)))

=================================
« Последнее редактирование: 02 Ноябрь 2016, 15:59:49 от SNIKERSMRG »
Notebook Samsung NP350V5C: 1366x768, Core i5 3210m, 6Gb Ram, 750Gb HDD, Radeon 7670m, Ubuntu 16.04

Оффлайн TeenSpirit

  • Любитель
  • *
  • Сообщений: 53
    • Просмотр профиля
    • Speed24
1. Посмотри также

if [ -f "$HOME/.bashrc" ]; then
  . "$HOME/.bashrc"
fi

2. Чтобы umask сработал (в текущей сессии), нужно чтобы все эти ~/.profile и так далее перечитались. Например, закрыть консоль и заново открыть

3. Можно вбить umask 022 в этот ~/.profile в самый конец и не париться :)

 

Страница сгенерирована за 0.057 секунд. Запросов: 24.