Команду id
можно использовать для поиска пользователя uid
, например:
$ id -u ubuntu
1000
Есть ли команда для поиска имени пользователя из uid
? Я понимаю, что это можно сделать, посмотрев на /etc/passwd
файл, но я спрашиваю, существует ли для этого команда, особенно если пользователь, выполняющий его, не является пользователем root.
Я не ищу имя пользователя текущего пользователя, т.е. я не ищу whoami
или logname
.
Это также заставило меня задуматься, если на общем веб-хостинге это функция безопасности, или я просто не понимаю что-то правильно?
Для ознакомления /etc/passwd
файл с общего веб-хостинга:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
avahi-autoipd:x:100:104:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
mailman:x:32006:32006::/usr/local/cpanel/3rdparty/mailman/mailman:/usr/local/cpanel/bin/noshell
dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
mysql:x:101:105:MySQL server:/var/lib/mysql:/bin/bash
cpaneleximfilter:x:32007:32009::/var/cpanel/userhomes/cpaneleximfilter:/usr/local/cpanel/bin/noshell
nagios:x:102:106:nagios:/var/log/nagios:/bin/sh
ntp:x:38:38::/etc/ntp:/sbin/nologin
myuser:x:1747:1744::/home/myuser:/usr/local/cpanel/bin/jailshell
А вот примерный список каталогов /tmp/
drwx------ 3 root root 1024 Apr 16 02:09 spamd-22217-init/
drwxr-xr-x 2 665 664 1024 Apr 4 00:05 update-cache-44068ab4/
drwxr-xr-x 4 665 664 1024 Apr 17 15:17 update-extraction-44068ab4/
-rw-rw-r-- 1 665 664 43801 Apr 17 15:17 variable.zip
-rw-r--r-- 1 684 683 4396 Apr 17 07:01 wsdl-13fb96428c0685474db6b425a1d9baec
Мы можем видеть, root
является владельцем некоторых файлов, а root
также отображается в /etc/passwd
, однако другие пользователи / группы все отображаются в виде чисел.
Ответы:
ls
уже выполняет этот поиск. Вы можете выполнить поиск информации о пользователе из командной строки с помощьюgetent passwd
.Если
ls
вместо имени пользователя отображается идентификатор пользователя, то это потому, что пользователя с таким именем нет. Файловые системы хранят идентификаторы пользователей, а не имена пользователей. Если вы смонтируете файловую систему из другой системы, или если файл принадлежит удаленному пользователю, или если вы передали числовой идентификатор пользователяchown
, у вас может быть файл, который принадлежит идентификатору пользователя, который не имеет имени.На общем хосте у вас может быть доступ к некоторым файлам, которые совместно используются несколькими виртуальными машинами, каждая из которых имеет свою пользовательскую базу данных. Это немного странно (зачем делиться файлами, а не пользователями, которые их владеют?), Но это технически возможно.
источник
ls -l
если длина имени превышает восемь символов.Пытаться
источник
t set
"$ uid" или этот идентификатор не существует. Находитgrep ":$uid:" /etc/passwd
это?getent passwd
Производит ли какой-либо вывод?ls -l
всегда этим занимаюсь.ls
списка на общедоступном хосте в столбцах имени пользователя / группы отображаются цифры с помощью ls. Возможно, это мера безопасности или джейлшелл?/etc/passwd
подключенный / общий доступ из другого места, который не был подключен в то время.Возможно, вам понравится эта маленькая песенка.
3.17.3-1-ARCH # 1 ПРЕДИСЛОВИЕ SMP пт. 14 ноября 22:56:01 CET 2014 i686 GNU / Linux
Я могу подтвердить, что он возвращает соответствующее имя пользователя, если оно существует, в Arch Linux. Я также могу подтвердить, что он не работает в Ubuntu при запуске от имени обычного пользователя, хотя я не проверял это как суперпользователь. Это также не работает на Alpine Linux. Возможно, функция безопасности не позволяет этому работать на некоторых системах.
источник
id -u jimmij
=>1000
.id -nu 1000
=>id: 1000: no such user
.id --version
=id (GNU coreutils) 8.23
Я понимаю, что это старый вопрос, но вот еще один ответ
источник
grep
чему? (Также, если вы добавите четыре пробела в начале строки, он будет отображаться как текст с фиксированной шириной.)getent passwd
. Но если разобрать / etc / passwd, было бы лучше использовать только awkID=0 ; awk -F: '{if ( $3 == '"$ID"' ) print $1}' /etc/passwd
.Разобрать / etc / passwd:
источник
getent
этого, это не работает, если система использует LDAP.источник