Узнать его можно многими способами:
$ id
uid=1000(stasikos) gid=1000(stasikos) группы=8(mail),20(dialout),24(cdrom),25(floppy),29(audio),44(video),
46(plugdev),1000(stasikos)
s
uid=1000 дает нам полное знание о собственном uid ).
$ id root
uid=0(root) gid=0(root) группы=0(root)
эта же команда дает нам возможность узнать и чей-то еще uid.
UID = `id -u`
В скрипте значение только текущего uid можно получать именно таким способом.
Кроме того, uid хранится в /etc/passwd:
$ getent passwd | grep stasikos
stasikos:x:1000:1000:Stanislav V. Kogut,,,:/home/stasikos:/bin/bash
Для изменения uid пользователя нужно воспользоваться командой usermod:
# usermod -u 1099 test
Но если все-таки uid пользователя в системе изменился вручную через редактирование /etc/passwd, это можно исправить, сделав пользователя владельцем его старых файлов и каталогов, которые ранее принадлежали этому пользователю, станут чужими, поэтому их нужно будет передать ему снова:
# find / -uid $OLD_UID -exec chown $username {} \;
Впрочем, эта команда может спасти и в случае, если пользователь владеет файлами за пределами своего домашнего каталога.
Задать uid при создании пользователя можно, указав ключ --uid для команды adduser.
P.S. А нафига это все? А это так, чтобы посмотреть, часто ли этот вопрос кого-то интересует.
Пригодилось, благодарю.
ОтветитьУдалить