天天看点

账号和权限的管理

了解账号及权限、组之的关系;管理用户;管理组;设置权限

1.了解账号及权限,组之间的关系

1)用户:包含一个名和密码,人在计算机中体现

2)组:用户集合,作用批量设置权限

3)权限:限制用户访问资源(如文件,app,进程,硬件等)

用户--权限限制--资源

组--批量限制--资源

文件系统提供权限,不同文件系统权限的实现方式不同。

head -1 /etc/passwd

root:x:0:0:root:/root:/bin/bash

用户名称:密码占位符:uid:gid:描述:家目录:登录shell

用户分为:root管理员,普通用户,程序用户

uid:root=0;程序用户=1-499;普通用户=500-65535;gid的号与uid相同

家目录:管理员/root,普通用户/home/用户名称

登录shell:正常使用的shell一般为/bin/bash;不能登录为/sbin/nologin(非交互式shell)

ls -a -l /etc/passwd /etc/shadow /etc/login.defs /etc/default/useradd /etc/skel/ ##出来linux中与用户有关的文件

案例:

useradd u01 ##创建账号u01

tail -1 /etc/passwd ##查看新用户的信息

tail -1 /etc/shadow ##查看信用户的密码信息

shadow文件中第二个字段的四种形态:

!!:表示未初始化密码,用户不能登录,新建用户后的默认形态

加密字符串:修改过密码的形态

!!加密字符串:用户密码被锁定形态

空:用户密码清空的形态

echo 123123 | passwd --stdin u01 ##设置密码

passwd -l u01 ##锁定用户密码

passwd -d u01 ##清空用户密码,只能本地登录,不能远程登录

4)组:批量管理用户

/etc/group ##组的账号文件

tail -1 /etc/group

u01:x:500:

组名:每一个用户都有一个基本组,如果把其他用户加入到组中,该组成为其他用户附加组

gid:组id

组的成员:默认情况下组附加组没有成员,基本的成员为对应的用户。

总结:

新建用户和组:就是在相应文件中添加记录或者根据要求复制基本数据文件。

删除用户和组:与新建相反。

2.管理用户的账号:增useradd,删userdel,改usermod,passwd,用户的文件

1)增:useradd

语法:useradd [选项] 用户名称

[选项]:-d指定用户的家目录,-m不创建家目录,-g指定gid,-g附加组,-s指定登录shell

useradd --help ##查看帮助

useradd -d /opt/hehe -s /sbin/nologin -g 1000 -g 0 hehe ##创建hehe用户

tail -1 /etc/passwd ##验证

grep hehe /etc/group ##验证hehe是在root组中

groupadd -g 1000 hehe ##创建hehe用户时若没有1000gid的组报错,创建后再新建。

2)改usermod,passwd

语法:usermod [选项] 用户

passwd 用户 ##修改密码

usermod -s /bin/bash hehe

usermod -l admin hehe ##修改hehe登录名称,root登录时不能修改

usermod -g 0 admin ##修改基本组信息

passwd admin ##交互式中修改密码

echo 123123 |passwd --stdin admin ##非交互式修改密码

passwd -l admin ##锁定账号,与usermod -l功能一样

passwd -s admin ##查看用户状态

passwd -u admin ##解锁账号,与usermod -u功能一样

3)删userdel

语法:userdel -r 用户

userdel -r admin ##-r连带家目录等信息彻底删除

3.管理组的账号:增groupadd,删groupdel,改gpasswd

1)增groupadd

语法:groupadd [选项] 组名称

groupadd -g 999 hh ##创建组hh,gid=999

grep hh /etc/group ##验证是否创建

grep root /etc/group ##查看root用户所在所有的组(查看root组信息)

2)改gpasswd

语法:gpasswd [选项] 用户 组 ##将用户加入到组中

useradd u01 ##相同方法创建u02,u03,u04

groupadd -g 1001 g01 ##创建g01组

groupadd -g 1002 g02

gpasswd -a u01 g01 ##将u01添加到g01组中,相同方法添加u02到g01中

grep g01 /etc/group ##验证u01,u02已加入g01组

gpasswd -m u03,u04 g02 ##将g02组的成员设置为u03,u04

grep g02 /etc/group ##验证

gpasswd -m u03,u04 g01 ##覆盖原有的成员

grep g01 /etc/group ##验证

gpasswd -d u03 g01 ##将u03移除g01

grep g01 /etc/group ##验证

3)删groupdel

语法:groupdel 组名

groupdel g01 ##删除g01组

总结:用户组的新建和删除都是在操作文件,用户登录后有相应特殊配置一般存放在家目录的配置文件中。

常见的配置存放文件有:

/home/用户名称/.bashrc(bash的配置文件,每一次登录或者执行bash时生效);.bash_profile(用户独立配置文件,一般设置环境变量等在用户登录生效);

.bash_logout(用户退出时的配置文件,一般可以将一些操作写入在退出时执行)

/etc/profile 所有用户的全局配置文件,

home下配置在创建用户时从/etc/skel/.*复制的。

4.设置权限:查看、改

1)查看权限

用户、组---访问控制---文件或目录

控制有:读(r)、写(w)、执行(x),目录和文件的控制有区别详见p72-4-1表。

注意:写的不能轻易给。

ls -l /etc/hosts ##查看文件的权限列表

ls -ld /home/u01 ##查看目录的权限列表

权限列表 inode数量 用户 组 日期 文件或目录名称

权限列表:

第一个表示文件的类型,如d目录,-(f)普通文件,l链接,b块设备,c字符设备,p管道文件,s套接字文件

2-4表示用户权限,如rwx,“-”表示没有权限

5-7表示组的权限,同上

8-10表除用户和组外的其他人的权限,一般为“r--”表只读

2)改:chmod改权限列表,chown改用户和组

语法:

chmod [ugoa][+-=][rwx] 文件或目录

chmod 数字 文件或目录

chmod -r 权限 文件或者目录 ##表示递归执行

mkdir /opt/test

touch /opt/test/a

ls -ld /opt/test

chmod u-w /opt/test ##去除用户写的权限

chmod u+w,g+w,o= /opt/test ##设置用户和组加写,其他人没有权限

chmod 775 /opt/test ##设置用户和组的权限为rwx,其他人权限为rx;r=4,w=2,x=1,用户权限=4+2+1=rwx

chmod -r 755 /opt/test ##递归设置权限,即目录下的所有内容都使用此权限

useradd lx

echo 123123 |passwd --stdin lx

分析:lx目前属于其他人,有rx的权限

chmod o= /opt/test

su - lx ##切换账号

cd /opt/test ##报错权限拒绝

exit

chmod o+x /opt/test

su - lx

cd /opt/test ##进入目录成功,结论:要进入目录必须给x的权限

ls ##权限拒绝

chmod o+r /opt/test

su - lx

cd /opt/test

ls ##查看到a文件,结论:要查看目录中内容必须给r的权限

chmod o+w /opt/test

ls -l /opt/test ##目录的权限为o=rwx,a文件的权限为o=r

cd /opt/test

rm -rf a ##删除a文件,结论:只要对目录有写权限,目录写内容可以被删除、修改、移动,不管子文件有无权限,因此w权限一般不给其他人,慎重给u,g。

3)修改用户列表:chown

chown 用户:组 文件或目录 ##同时修改资源的用户和组

chown 用户 文件或目录 ##只修改用户

chown :组 文件或目录 ##只修改组

使用-r可以递归设置。

chown lx /opt/test ##修改用户为lx

ls -ld /opt/test

chown :g01 /opt/test ##修改组为g01

ls -ld /opt/test ##验证

chown u01:g02 /opt/test ##同时修改用户和组

chown -r u01:g02 /opt/test ##递归设置权限