赞
踩
linux基础传送门:
下面介绍用户、用户组、其他人的概念
有个人叫张小猪,他是张小猪家的人,和王大毛家没有关系,此时无法进入王大毛家;如果张小猪和王三毛成了好朋友,他就可以通过王三毛进入王家。那么这个张小猪就是王家所谓的其他人(Others) 。
若某一用户对于一个与他毫无关系的用户组而言,就可以被视作其他用户。 在这有一个特殊用户需要提及一下。Linux 中的 root 用户(上图中的天神),在整个Linux 系统中拥有最大的权限,理论上能干任何事情。
由于 Linux 是多用户,多任务的操作系统,为此,会经常有多个用户同时使用某一台主机。为了考虑每个用户的隐私安全以及每个用户特殊的工作环境,设计了文件所有者这个概念。 而文件所有者就是文件所属的用户。
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
用户组是为了团队开发资源而设计的。在 Linux 下我们可以进行简单的文件权限设置,就能限制非自己团队的用户权限,同时,我们还可以设置个人私密文件,使团队内其他成员无法获取私人的文件内容。除此之外,若是有项目主管想监督这两个团队的开发进度,需要查看两个团队文件的权限,你便可以设置主管账号,同时支持这两个用户组。换句话说:每个账号都可以有多个用户组的支持。
在同一个用户组中,可以通过设置文件的权限,将一些文件设置为“私有的”(只能自己访问和使用),同用户组的其他用户无法访问和使用。 而通过设置用户组共享的,则可让大家共同分享。
d rwx r-x ---
在 Linux 系统当中,默认情况下所有的系统上的账号信息都记录在/etc/passwd
这个文件内(包括 root 用户)。而个人密码记录在/etc/shadow
这个文件内。所有Linux 的组名都记录在/etc/group
内。这三个文件非常重要,不要轻易做变动。用户身份与用户组的概念,能够帮助我们的 Linux 多任务环境变得更为容易管理。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的管理工作主要涉及到用户账号的添加、修改和删除。 添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录 Shell 等资源。刚添加的账号是被锁定的,无法使用。
添加新的用户账号使用 useradd 命令,其命令格式为:useradd 选项用户名
增加用户账号就是在/etc/passwd
文件中为新用户增加一条记录,同时更新其他 系统文件如/etc/shadow
,/etc/group
等。
参数介绍:
/home
目录下创建同名的用户组作为家目录实例1:添加用户 lucy,并设置他的个人主目录
[root@node1 ~]# useradd –d /usr/lucy -m lucy
此命令创建了一个用户 lucy,其中-d 和-m 选项用来为登录名 lucy 产生一个主目录/usr/lucy(/home 为默认的用户主目录所在的父目录)。
实例2:创建用户 gen,指定他属于主用户组“lucy”,附加组“adm、root”,已经登录
的 Shell 是/bin/sh
[root@node1 ~]# useradd -s /bin/sh -g lucy -G adm,root gen
此命令新建了一个用户 gen,该用户的登录 Shell 是 /bin/sh,它属于lucy 用户组,同时又属于 adm 和 root 用户组,其中 lucy 用户组是其主组。
修改账号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户 组、登录 Shell 等。
修改已有用户的信息使用 usermod 命令,其格式如下:usermod 选项用户名
。常用的选项包括-c, -d, -m, -g, -G, -s, -u 以及-o 等,这些选项的意义与useradd 命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用选项:-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
实例1:将用户gen的登录Shell修改为bash,主目录改为/home/z,用户组改为root。
usermod -s /bin/bash –g root gen
删除帐号
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd
等系统文件中的该用户记录删除,必要时还删除用户的主目录。
删除一个已有的用户账号使用 userdel 命令,其格式如下: userdel 选项用户名
。常用的选项是-r
,它的作用是把用户的主目录一起删除。
此 命 令 删 除 用 户 liujie在 系 统 文 件 中 ( 主 要 是 /etc/passwd, /etc/shadow, /etc/group 等)的记录。
此时,/home
家目录下的主目录还有删除,若还要创建该用户,需要先强制删除该主目录再进行创建用户
用户口令的管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定, 无法使用,必须为其指定口令后才可以使用,即使是指定空口令。 指定和修改用户口令的 Shell 命令是 passwd。超级用户可以为自己和其他用户指定口令, 普通用户只能用它修改自己的口令。命令的格式为: passwd 选项用户名
。
参数说明:
-l(lock) 锁定口令,即禁用账号。
-u(unlock) 口令解锁。
-d(HOME_DIR) 使账号无口令。
-f 强迫用户下次登录时修改口令。
普通用户修改自己的口令时,passwd 命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时, 就不需要知道原口令。 为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用 8 位长的口令,口令中 包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。 为用户指定空口令时,执行下列形式的命令:
如果不跟用户名,则默认修改当前用户的密码。
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。 不同 Linux 系统对用户组的规定有所不同,如 Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group
文件的更新。
增加一个新的用户组使用groupadd命令
其命令格式为:groupadd 选项用户组
参数选项:
实例 1:添加用户组 group1:groupadd group1
[root@node1 ~]# groupadd group1 [root@node1 ~]# cat /etc/group root:x:0:gem,gen bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon,gem,gen tty:x:5: disk:x:6: lp:x:7:daemon mem:x:8: kmem:x:9: wheel:x:10: mail:x:12:mail,postfix uucp:x:14: man:x:15: games:x:20: gopher:x:30: video:x:39: dip:x:40: ftp:x:50: lock:x:54: audio:x:63: nobody:x:99: users:x:100: floppy:x:19: vcsa:x:69: utmp:x:22: utempter:x:35: cdrom:x:11: tape:x:33: dialout:x:18: saslauth:x:76: postdrop:x:90: postfix:x:89: fuse:x:499: sshd:x:74: apache:x:48: ntp:x:38: lucy:x:504: liujie:x:506: group1:x:507:
此命令向系统中增加了一个新组 group1,新组的组标识号是在当前已有的最大组标识号的基础上加 1。
实例 2:向系统中增加了一个新组 group2,同时指定新组的组标识号是 101
groupadd -g 101 group2
[root@node1 ~]# groupadd -g 101 group2 [root@node1 ~]# cat /etc/group root:x:0:gem,gen bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon,gem,gen tty:x:5: disk:x:6: lp:x:7:daemon mem:x:8: kmem:x:9: wheel:x:10: mail:x:12:mail,postfix uucp:x:14: man:x:15: games:x:20: gopher:x:30: video:x:39: dip:x:40: ftp:x:50: lock:x:54: audio:x:63: nobody:x:99: users:x:100: floppy:x:19: vcsa:x:69: utmp:x:22: utempter:x:35: cdrom:x:11: tape:x:33: dialout:x:18: saslauth:x:76: postdrop:x:90: postfix:x:89: fuse:x:499: sshd:x:74: apache:x:48: ntp:x:38: lucy:x:504: liujie:x:506: group1:x:507: group2:x:101:
如果要删除一个已有的用户组,使用 groupdel命令,其命令格式为:
groupdel 用户组
实例 1:从系统中删除组 group1
[root@node1 ~]# groupdel group1 [root@node1 ~]# cat /etc/group root:x:0:gem,gen bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon,gem,gen tty:x:5: disk:x:6: lp:x:7:daemon mem:x:8: kmem:x:9: wheel:x:10: mail:x:12:mail,postfix uucp:x:14: man:x:15: games:x:20: gopher:x:30: video:x:39: dip:x:40: ftp:x:50: lock:x:54: audio:x:63: nobody:x:99: users:x:100: floppy:x:19: vcsa:x:69: utmp:x:22: utempter:x:35: cdrom:x:11: tape:x:33: dialout:x:18: saslauth:x:76: postdrop:x:90: postfix:x:89: fuse:x:499: sshd:x:74: apache:x:48: ntp:x:38: lucy:x:504: liujie:x:506: group2:x:101:
如果用户组下有用户是不能被删除的
3. 修改用户组的属性使用groupmod 命令,其命令格式为:
groupmod 选项用户组
参数选项:
实例 1:将组 group2 的组标识号修改为 102
[root@node1 ~]# groupmod -g 102 group2 [root@node1 ~]# cat /etc/group root:x:0:gem,gen bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon,gem,gen tty:x:5: disk:x:6: lp:x:7:daemon mem:x:8: kmem:x:9: wheel:x:10: mail:x:12:mail,postfix uucp:x:14: man:x:15: games:x:20: gopher:x:30: video:x:39: dip:x:40: ftp:x:50: lock:x:54: audio:x:63: nobody:x:99: users:x:100: floppy:x:19: vcsa:x:69: utmp:x:22: utempter:x:35: cdrom:x:11: tape:x:33: dialout:x:18: saslauth:x:76: postdrop:x:90: postfix:x:89: fuse:x:499: sshd:x:74: apache:x:48: ntp:x:38: lucy:x:504: liujie:x:506: group2:x:102:
实例 2:将组 group2 的标识号改为 10000,组名修改为 group3
[root@node1 ~]# groupmod -g 10000 -n group3 group2 [root@node1 ~]# cat /etc/group root:x:0:gem,gen bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon,gem,gen tty:x:5: disk:x:6: lp:x:7:daemon mem:x:8: kmem:x:9: wheel:x:10: mail:x:12:mail,postfix uucp:x:14: man:x:15: games:x:20: gopher:x:30: video:x:39: dip:x:40: ftp:x:50: lock:x:54: audio:x:63: nobody:x:99: users:x:100: floppy:x:19: vcsa:x:69: utmp:x:22: utempter:x:35: cdrom:x:11: tape:x:33: dialout:x:18: saslauth:x:76: postdrop:x:90: postfix:x:89: fuse:x:499: sshd:x:74: apache:x:48: ntp:x:38: lucy:x:504: liujie:x:506: group3:x:10000:
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令 newgrp 切换到其他用户组,这个命令的参数就是目的用户组。其命令格式为:
newgrp 目的用户组
完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括 /etc/passwd, /etc/shadow, /etc/group 等。下面分别介绍这些文件的内容:
/etc/passwd
/etc/passwd 文件是用户管理工作涉及的最重要的一个文件。 Linux 系统中的每个用户都在/etc/passwd 文件中有一个对应的记录行,它记录了这个用户的一些基本属性。 这个文件对所有用户都是可读的。
[root@node1 ~]# cat /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 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 vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin gem:x:503:0::/home/gem:/bin/bash lucy:x:504:504::/usr/lucy:/bin/bash gen:x:505:0::/home/gen:/bin/bash liujie:x:506:506::/home/liujie:/bin/bash
从上面的例子我们可以看到,/etc/passwd 中一行记录对应着一个用户,每行记录又被冒号(:)分隔为 7 个字段,
其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
"用户名"是代表用户账号的字符串。
通常长度不超过 8 个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。