четверг, 12 июня 2008 г.

Kак узнать или изменить свой uid в linux

UID - это уникальный в пределах системы идентификатор пользователя. Представляет собой целое число.


Узнать его можно многими способами:
$ 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. А нафига это все? А это так, чтобы посмотреть, часто ли этот вопрос кого-то интересует.

1 комментарий: