程序员人生 网站导航

linux 查看当前用户id、whoami用户列表、用户组、用户权限/etc/passwd、/etc/group、/etc/shadow以及切换用户身份、su、

栏目:服务器时间:2015-06-04 07:46:17

1、查看当前用户之id、whoami

命 令:id 

功能说明:查看显示目前登陆账户的uid和gid及所属分组及用户名 

语  法:id [-gGnru][--help][--version][用户名称] 

补充说明:id会显示用户和所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。 
这个命令在溢出时常常用到,查看是否是溢出root成功,履行1下id命令,显示uid=0,则成功了。 

参  数: 
 -g或--group  显示用户所属群组的ID。 
 -G或--groups  显示用户所属附加群组的ID。 
 -n或--name  显示用户,所属群组或附加群组的名称。 
 -r或--real  显示实际ID。 
 -u或--user  显示用户ID。 
 -help  显示帮助。 
 -version  显示版本信息 

履行结果: 

[root]#id 
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) 
[root]#su  linuxso 
[]$id 
uid=505(linuxso) gid=505(linuxso) groups=504(test),505(linuxso)

[root]-> whoami
root
[root]-> id root
uid=0(root) gid=0(root) groups=0(root)

2、查看用户列表、用户组之/etc/passwd、/etc/group、/etc/shadow

以下参考:http://blog.chinaunix.net/uid⑵4837409-id⑶174035.html
在Linux中,用户(User)和用户组(Group)的配置文件,是作为系统管理员的你最应当了解和掌握的系统基础文件之1。从另外一方面来讲,了解这些文件也是系统安全管理的重要组成部分,作为1个合格的系统管理员1定要对用户和用户组配置文件了解透彻才行;
   【1】、用户(User)相干:
  谈到用户,就不能不谈用户管理、用户配置文件、和用户查询和管理的控制工具;用户管理主要通过修改用户配置文件完成,用户管理控制工具终究目的也是为了修改用户配置文件。
  那末,甚么是用户查询和管理控制工具呢?用户查询和控制工具是查询、添加、修改和删除用户等系统管理工具,比如查询用户的id和finger命
令,添加用户的useradd 或adduser 、userdel 用户的删除 、设置密码的passwd命令 、修改用户usermod
等等;我们需要知道的是通过用户查询和控制工具所进行的动作的终究目的也是修改用户配置文件;所以我们进行用户管理的时候,直接修改用户配置文件1样可以
到达用户管理的目的。
  了解了上面所说的,我们便能实实在在的感觉到用户(User)配置文件的重要性:其实用户和用户组在系统管理中是不可分割的,但为了说明问题,
我们还是得把用户(User)的配置文件单列出来解说,其中包括/etc/passwd 和/etc/shadow
文件;在这当中,你还能了解UID的重要性;
  通过本标题,您可以了解或掌握的内容有:了解/etc/passwd和/etc/shadow;甚么UID ;
  与用户相干的系统配置文件主要有/etc/passwd
和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等;/etc/passwd
和/etc/shadow 文件是互补的;我们可以通过对照两个文件来差看他们的区分;
  1、关于/etc/passwd 和 UID;
  /etc/passwd 是系统辨认用户的1个文件,做个不恰当的比喻,/etc/passwd
是1个花名册,系统所有的用户都在这里有登录记载;当我们以beinan 这个账号登录时,系统首先会查阅 /etc/passwd
文件,看是不是有beinan 这个账号,然后肯定beinan的UID,通过UID 来确认用户和身份,如果存在则读取/etc/shadow
影子文件中所对应的beinan的密码;如果密码核实无误则登录系统,读取用户的配置文件;
  1)/etc/passwd 的内容理解:
  在/etc/passwd 中,每行都表示的是1个用户的信息;1行有7个段位;每一个段位用:号分割,比以下面是我的系统中的/etc/passwd 的两行:
   beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
   linuxsir:x:501:502::/home/linuxsir:/bin/bash
  第1字段:用户名(也被称为登录名);在上面的例子中,我们看到这两个用户的用户名分别是 beinan 和linuxsir;
  第2字段:口令;在例子中我们看到的是1个x,其实密码已被映照到/etc/shadow 文件中;
  第3字段:UID ;请参看本文的UID的解说;
  第4字段:GID;请参看本文的GID的解说;
  第5字段:用户名全称,这是可选的,可以不设置,在beinan这个用户中,用户的全称是beinan sun ;而linuxsir 这个用户是没有设置全称;
  第6字段:用户的家目录所在位置;beinan 这个用户是/home/beinan ,而linuxsir 这个用户是/home/linuxsir ;
  第7字段:用户所用SHELL 的类型,beinan和linuxsir 都用的是 bash ;所以设置为/bin/bash ;
  2)关于UID 的理解:
  UID 是用户的ID 值,在系统中每一个用户的UID的值是唯1的,更确切的说每一个用户都要对应1个唯1的UID
,系统管理员应当确保这1规则。系统用户的UID的值从0开始,是1个正整数,至于最大值可以在/etc/login.defs
可以查到,1般Linux发行版约定为60000; 在Linux 中,root的UID是0,具有系统最高权限;
  UID 在系统唯1特性,做为系统管理员应当确保这1标准,UID
的唯1性关系到系统的安全,应当值得我们关注!比如我在/etc/passwd 中把beinan的UID
改成0后,你假想会产生甚么呢?beinan这个用户会被确认为root用户。beinan这个帐号可以进行所有root的操作;
  UID 是确认用户权限的标识,用户登录系统所处的角色是通过UID 来实现的,而非用户名,切记;把几个用户共用1个UID
是危险的,比如我们上面所谈到的,把普通用户的UID 改成0,和root共用1个UID
,这事实上就造成了系统管理权限的混乱。如果我们想用root权限,可以通过su或sudo来实现;切不可随便让1个用户和root分享同1个UID ;
  UID是唯1性,只是要求管理员所做的,其实我们修改/etc/passwd 文件,可以修改任何用户的UID的值为0,
  1般情况下,每一个Linux的发行版都会预留1定的UID和GID给系统虚拟用户占用,虚拟用户1般是系统安装时就有的,是为了完成系统任务所必须的用户,但虚拟用户是不能登录系统的,比如ftp、nobody、adm、rpm、bin、shutdown等;
  在Fedora 系统会把前499 个UID和GID 预留出来,我们添加新用户时的UID
从500开始的,GID也是从500开始,至于其它系统,有的系统可能会把前999UID和GID预留出来;以各个系统中/etc/login.defs
中的 UID_MIN 的最小值为准; Fedora 系统 login.defs的UID_MIN是500,而UID_MAX
值为60000,也就是说我们通过adduser默许添加的用户的UID的值是500到60000之间;而Slackware
通过adduser不指定UID来添加用户,默许UID 是从1000开始;
  2、关于/etc/shadow ;
  1)/etc/shadow 概说;
  /etc/shadow文件是/etc/passwd 的影子文件,这个文件其实不由/etc/passwd
而产生的,这两个文件是应当是对应互补的;shadow内容包括用户及被加密的密码和其它/etc/passwd
不能包括的信息,比如用户的有效期限等;这个文件只有root权限可以读取和操作,权限以下:
  -r――
------分隔线----------------------------

上一篇 Rising Temperature

下一篇 synonyms

------分隔线----------------------------

最新技术推荐