Umask не был бы соответствующим, при попытке управлять тем, что другие пользователи видят друг от друга. Однако, если Вы имеете и работаете с многочисленными файлами, которые чувствительны до такой степени, что попроситься разрешения получить доступ к ним является менее надоедливым/опасным, чем просто разрешение людям видеть то, что они хотят, чем umask 077 был бы хорошей идеей.
У меня есть некоторые чувствительные файлы на файловом сервере, которым я управляю. Я думаю, устанавливая строгий umask, затем имеющий периодический сценарий, возможно, задание крона для установки более определенных полномочий на объекты в определенных папках было бы идеальным решением для меня. Когда я настроил это, я отправлю назад здесь и сообщу, как это работало.
[Парни, колотящие sudo], Начинают новую дискуссию для него, могло потребоваться несколько потоков самих по себе, и этот поток о umask.
Я думаю, что Вы хотите определить, выполняется ли команда в терминале.
if [ -t 2 ]; then
# Standard error is a terminal
emacs -nw "$@"
elif [ -n "$DISPLAY" ]; then
# An X display is available
xterm -e emacs -nw "$@"
else
# We have nothing
emacs --daemon "$@"
fi
Если Вы хотите, чтобы это всегда произошло, когда Вы выполняете Emacs, помещаете его в сценарий и вызываете тот сценарий вместо этого. Можно назвать сценарий /usr/local/bin/emacs
(принятие Linux), если Вы хотите, чтобы это было названо emacs
и вызванный в предпочтении к “реальному” emacs
исполняемый файл в /usr/bin
.
Обратите внимание, что для редактирования файлов как корня необходимо использовать sudoedit
(преимущества: редактор работает как Вы так, Вы получаете все свои настройки; отредактированный файл помещается в место атомарно, когда Вы заканчиваете редактировать, уменьшая шанс неудачи). Можно также отредактировать файлы как корень непосредственно в Emacs путем открытия /sudo::/path/to/file
.
Скажите это:
$ echo "alias emacs='emacs -nw'" >> ~/.bashrc
Выйдите из системы, затем войдите в, и Вы получите поведение, которое Вы просите. Псевдоним применяется только к Bash.
bashrun
не читает ~/.bashrc
. Если руководство является неправильным, можно сказать "непсевдоним emacs" в $XDG_CONFIG_HOME/bashrun/rc для удаления псевдонима для bashrun
.
– Warren Young
03.11.2010, 20:09
.bashrc
; если они не делают у них почти наверняка есть эквивалентный конфигурационный файл, Вы могли бы вставить ту же строку
– Michael Mrozek♦
04.11.2010, 01:29
.profile
будет работать если /bin/sh
Bash или другая оболочка, которая понимает псевдонимы, но дело не в этом во всех системах. Тем не менее я не вижу, почему это действительно имеет значение. /bin/sh
существует для выполнения сценариев оболочки, не для интерактивного использования, которое подразумевает использование X. Если у Вас есть сценарий оболочки, Вы записали для использования в интерактивном режиме, вместо того, чтобы пробовать к рожку для обуви мое решение в работу для /bin/sh
, просто помещенный #!/bin/bash
или безотносительно наверху вместо этого.
– Warren Young
04.11.2010, 18:36