Я рекомендовал бы http://supervisord.org/, это будет супернедостаток Ваш процесс, перезапустить его для Вас и имеет много конфигурации и должно быть выполнено как обычный пользователь.
ls
уже выполняет тот поиск. Можно выполнить поиск информации о пользователе из командной строки с getent passwd
.
Если ls
показывает идентификатор пользователя вместо имени пользователя, это - потому что нет никакого пользователя тем именем. Файловые системы хранят идентификаторы пользователей, не имена пользователей. Если Вы монтируете файловую систему от другой системы, или если файл принадлежит теперь-удаленному-пользователю, или если Вы передали числовой идентификатор пользователя chown
, у Вас может быть файл, который принадлежит идентификатору пользователя, который не имеет имени.
На общем хосте у Вас может быть доступ к некоторым файлам, которые совместно использованы между несколькими виртуальными машинами, каждым с их пользовательской базой данных. Это немного странно (почему совместно используют файлы, но не пользователей, которые владеют ими?), но это технически возможно.
t set
"$uid"' или что uid не существует. Делает grep ":$uid:" /etc/passwd
найти его? Делает getent passwd
произвести вывод?
– Mikel
17.04.2012, 07:14
ls -l
всегда делает это.
– camh
17.04.2012, 10:00
ls
список на общем хосте показывал числа в пользователе / столбцы названия группы с ls. Возможно, это - предосторожность безопасности или jailshell вещь?
– cwd
17.04.2012, 22:50
/etc/passwd
смонтированный / совместно использованный откуда-либо, который не был смонтирован в то время. спасибо
– jw013
17.04.2012, 22:56
/etc/passwd
смонтированный / совместно использованный откуда-либо, который не был смонтирован в то время. спасибо
– jw013
17.04.2012, 22:56
Синтаксический анализ/etc/passwd:
% awk -F: "/:$(id -u ubuntu):/{print \$1}" /etc/passwd
ubuntu
getent
, это не работает, если система использует LDAP.
– choroba
17.04.2012, 11:51
Можно настроить sudo
таким образом, чтобы члены группы могли выполнять команду без пароля. Используйте visudo
для редактирования sudoers
file:
# visudo
Добавьте в нижнюю часть файла нечто похожее на:
%mygroup ALL = (root) NOPASSWD: iwlist wlanX scan
(где mygroup
- имя группы, которому предшествует символ процента).
Вы также можете разрешить одному пользователю запускать эту функцию, изменив % mygroup
на myuser
, где myuser
является именем пользователя (обратите внимание на отсутствие символа процента).
Можно также разрешить сканирование всем пользователям, заменив % mygroup
на ALL
.
Использование возможностей
позволяет использовать cap _ net _ admin
для всех команд iwlist
, в то время как использование sudo
, сконфигурированных, как указано выше, ограничивает использование только одной команды с определенными опциями. Это должно быть более безопасным.
Другая (общая) причина заключается в том, что настройка sudo
будет более портативной, чем использование capabilites
, хотя это не имеет значения в данном случае, если вы просто используете Linux.
На Mac OS X с помощью команды FreeBSD date
вы можете выполнить преобразование через эпохальное время:
epoch_time="$(LANG=C TZ='EST' date -j -f "%a %b %d %T %Z %Y" "Wed Dec 25 06:35:02 EST 2013" "+%s")"
a="$(date -r $epoch_time '+%F')
echo "$a" # 2013-12-25
-121--58631- Вы можете насладиться этой маленькой частушкой.
$ id -nu [number]
3.17.3-1-ARCH # 1 SMP PREEMPT пт 14 ноября 22:56:01 CET 2014 i686 GNU/Linux
Могу подтвердить, что он возвращает соответствующее имя пользователя, если оно существует, на Arch Linux. Я также могу подтвердить, что он не работает на Ubuntu при запуске как обычный пользователь, хотя я не тестировал это как суперпользователь. Он также не работает на Alpine Linux. Возможно, функция безопасности препятствует работе с некоторыми системами.
Я понимаю, что это старый вопрос, но вот еще один ответ
awk -F: '{print $1,$3}' /etc/passwd | grep <UID>
ls -l
если имя является более чем восемью символами в длине. – kgrittn 20.04.2017, 17:44