Linux中的用户和用户组总结

来源:互联网 发布:网络电视机顶盒哪个牌子好 编辑:程序博客网 时间:2024/06/05 13:32

1、linux中的用户和用户组相关文件

        <1>用户:

        linux中的用户分为root用户和非root用户。非root用户即普通用户。

        普通用户可以有一个以自己用户名命名的home目录,存放的地址是/home/username,root用户的home目录是:/root 。

       每个用户都有对应的UID,UID就像是身份证号:

       超级用户UID:0:root用户默认为0。
       系统用户UID:1-999:系统中系统服务由不同用户运行,更加安全,默认被限制登陆系统。 
       普通用户UID:1000~:即管理员创建的用于日常工作而不能管理系统的普通用户。
      注意UID一定是不能冲突的,管理员创建的普通用户UID从1000开始(即便前面有闲置的号码)

        <2>用户组:

         linux中的用户肯定用一个所属的用户组,也可以属于多个用户组。用户组也有对应的GID,方便去添加用户到组里。在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多,你的兄弟姐妹(不同的用户)属于同一个家(用户组),你们可以共同拥有这个家(共享资源),爸妈对待你们都一样(共享权限),你偶尔写写日记,其他人未经允许不能查看(私有资源和权限)。当然一个用户是可以属于多个用户组的,正如你既属于家庭,又属于学校或公司。

        <3>所有用户的信息放在/etc/passwd文件下,下面是我的系统中的用户信息:

root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/usr/sbin/nologinman:x:6:12:man:/var/cache/man:/usr/sbin/nologinlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologinmail:x:8:8:mail:/var/mail:/usr/sbin/nologinnews:x:9:9:news:/var/spool/news:/usr/sbin/nologinuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologinproxy:x:13:13:proxy:/bin:/usr/sbin/nologinwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologinbackup:x:34:34:backup:/var/backups:/usr/sbin/nologinlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologinirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologingnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologinnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologinlibuuid:x:100:101::/var/lib/libuuid:syslog:x:101:104::/home/syslog:/bin/falsemessagebus:x:102:106::/var/run/dbus:/bin/falseusbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/falsednsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/falseavahi-autoipd:x:105:113:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/falsekernoops:x:106:65534:Kernel Oops Tracking Daemon,,,:/:/bin/falsertkit:x:107:114:RealtimeKit,,,:/proc:/bin/falsesaned:x:108:115::/home/saned:/bin/falsewhoopsie:x:109:116::/nonexistent:/bin/falsespeech-dispatcher:x:110:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/shavahi:x:111:117:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/falselightdm:x:112:118:Light Display Manager:/var/lib/lightdm:/bin/falsecolord:x:113:121:colord colour management daemon,,,:/var/lib/colord:/bin/falsehplip:x:114:7:HPLIP system user,,,:/var/run/hplip:/bin/falsepulse:x:115:122:PulseAudio daemon,,,:/var/run/pulse:/bin/falsejin1017:x:1000:1000:jin1017,,,:/home/jin1017:/bin/bash
文件的每一行代表着一个用户,每一行由冒号“:”分割成7个字段,其结构如下:

用户名:密码:UID:GID:用户全名:home目录:shell
其中密码统一用x代替。

       <4>用户的密码信息放在/etc/shadow文件下(root才可以访问)

jin1017@ubuntu:~$ sudo cat /etc/shadow[sudo] password for jin1017: root:!:17470:0:99999:7:::daemon:*:16848:0:99999:7:::bin:*:16848:0:99999:7:::sys:*:16848:0:99999:7:::sync:*:16848:0:99999:7:::games:*:16848:0:99999:7:::man:*:16848:0:99999:7:::lp:*:16848:0:99999:7:::mail:*:16848:0:99999:7:::news:*:16848:0:99999:7:::uucp:*:16848:0:99999:7:::proxy:*:16848:0:99999:7:::www-data:*:16848:0:99999:7:::backup:*:16848:0:99999:7:::list:*:16848:0:99999:7:::irc:*:16848:0:99999:7:::gnats:*:16848:0:99999:7:::nobody:*:16848:0:99999:7:::libuuid:!:16848:0:99999:7:::syslog:*:16848:0:99999:7:::messagebus:*:16848:0:99999:7:::usbmux:*:16848:0:99999:7:::dnsmasq:*:16848:0:99999:7:::avahi-autoipd:*:16848:0:99999:7:::kernoops:*:16848:0:99999:7:::rtkit:*:16848:0:99999:7:::saned:*:16848:0:99999:7:::whoopsie:*:16848:0:99999:7:::speech-dispatcher:!:16848:0:99999:7:::avahi:*:16848:0:99999:7:::lightdm:*:16848:0:99999:7:::colord:*:16848:0:99999:7:::hplip:*:16848:0:99999:7:::pulse:*:16848:0:99999:7:::jin1017:$1$vDVd0Rgb$dgDX3BYQiDn3teYv.TOn00:17470:0:99999:7:::

每行代表有个用户,具体信息:

登录名:加密过的密码(*代表此用户不能用来登录):密码最近更改日期(linux时间戳):最少密码天数(0代表随时可更改):最多密码天数:过期前几天提醒用户:密码不可用期限:账户过期日期:保留位
       <5>/etc/group文件:

jin1017@ubuntu:~$ cat /etc/grouproot:x:0:daemon:x:1:bin:x:2:sys:x:3:adm:x:4:syslog,jin1017tty:x:5:disk:x:6:lp:x:7:mail:x:8:news:x:9:uucp:x:10:man:x:12:proxy:x:13:kmem:x:15:dialout:x:20:fax:x:21:voice:x:22:cdrom:x:24:jin1017floppy:x:25:tape:x:26:sudo:x:27:jin1017audio:x:29:pulsedip:x:30:jin1017www-data:x:33:backup:x:34:operator:x:37:list:x:38:irc:x:39:src:x:40:gnats:x:41:shadow:x:42:utmp:x:43:video:x:44:sasl:x:45:plugdev:x:46:jin1017staff:x:50:games:x:60:users:x:100:nogroup:x:65534:libuuid:x:101:netdev:x:102:crontab:x:103:syslog:x:104:fuse:x:105:messagebus:x:106:ssl-cert:x:107:lpadmin:x:108:jin1017scanner:x:109:sanedmlocate:x:110:ssh:x:111:utempter:x:112:avahi-autoipd:x:113:rtkit:x:114:saned:x:115:whoopsie:x:116:avahi:x:117:lightdm:x:118:nopasswdlogin:x:119:bluetooth:x:120:colord:x:121:pulse:x:122:pulse-access:x:123:jin1017:x:1000:sambashare:x:124:jin1017
每行代表一个用户组,具体结构:

组名:用户组密码:GID:用户组内的用户名
用户组的密码放在 /etc/gshadow文件下


2、用户和用户组常用的命令:

      <1>useradd命令:useradd  [username] [选项] [参数]  

         使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell 都要单独去设定,或者在创建的时候用参数来设定。

-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中-d<登入目录>:指定用户登入时的启始目录-D:变更预设值-e<有效期限>:指定帐号的有效期限-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号-g<群组>:指定用户所属的群组-G<群组>:指定用户所属的附加群组-m:自动建立用户的登入目录-M:不要自动建立用户的登入目录-n:取消建立以用户名称为名的群组-r:建立系统帐号-s:指定用户登入后所使用的shell-u:指定用户id
demo:

 sudo useradd jinge -c jj -f 5 -u 1111

       <2>adduser命令: sudo adduser username  使用adduser时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息,然后会根据这些信息帮你创建新用户。

           

jin1017@ubuntu:~$ sudo adduser jinge1Adding user `jinge1' ...Adding new group `jinge1' (1001) ...Adding new user `jinge1' (1001) with group `jinge1' ...Creating home directory `/home/jinge1' ...Copying files from `/etc/skel' ...Enter new UNIX password: Retype new UNIX password: passwd: password updated successfullyChanging the user information for jinge1Enter the new value, or press ENTER for the defaultFull Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y
         <3>用户的切换:su -l [username] 或者su - [username] ,不推荐su [username].(最后一种方法并不会改变工作目录和path,所以有的时候会执行不了一些命令。)

             先看su username:


工作目录和PATH没有改变。

          su - [username]:下图用su - 切换为root,PATH和目录均改变。


          <4>删除用户:deluser [username] 其中一些选项如下:




             <5>修改用户的信息:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s][-u ][用户帐号]

   参  数: -c<备注>  修改用户帐号的备注文字。 -d登入目录>  修改用户登入时的目录。 -e<有效期限>  修改帐号的有效期限。 -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。 -g<群组>  修改用户所属的群组。 -G<群组>  修改用户所属的附加群组。 -l<帐号名称>  修改用户帐号名称。 -L  锁定用户密码,使密码无效。 -s<shell>  修改用户登入后所使用的shell。 -u<uid>  修改用户ID。 -U  解除密码锁定。
                    

                <6>关于用户组的一些命令:

            groupadd [groupname]:添加用户组

            从组中删除用户
            编辑/etc/group 找到GROUP1那一行,删除 A
            或者用命令
            gpasswd -d A GROUP

             groups 用户名 :查看用户所在组

        groupdel 组名:删除用户组