用户、组和权限管理综合实践
项目一:
- 用户和组的构建
服务器管理员经过对公司各部门的需求分析发现,只有商务部和开发部的员工需要登录服务器,其他部门的员工暂时不需要访问服务器,因此,管理员需要为这两个部门创建组账户,并为两个部门的员工创建各自的用户账号。
所属部门 | 账户名 | 附加组 | 初始密码 | 账户口令策略 |
商务部 | B_tom | gBusiness | 123456789 | 1、用户首次登录需要修改密码 2、30天之内必须更换一次密码 3、1天内只能修改一次密码 4、在口令过期前5天通知用户 |
B_lucy | ||||
……. | ||||
开发部 | D_mike | gDevelop | ||
D_lily | ||||
…… |
二、权限的管理
公司承接一项新的WEB业务,商务部负责与客户沟通并调研客户需求,为客户指定网站建设方案,开发部根据沟通记录及建设方案给出网站设计风格,并交由商务部与客户部沟通确认,确认后,由开发部进行代码编写,部门之间有大量数据需要共享,为了优化办公流程,需要在服务器上为项目创建专用的目录,并修改目录属性,为员工提供必要的读写权限。
项目分析:
- 创建目录plan,商务部负责人(用户B_tom)可以往该目录内拷贝商务部给出的建设方案文档,开发部所有员工(组gDevelop)可以读取该目录下的所有文件。
- 创建目录design,开发部负责人(用户D_mike)可以往该目录内拷贝设计部给出的网站风格设计文档,商务部所有员工(组gBusiness)可以读取目录下的设计文档。
- 创建目录public,作为公共共享,允许所有员工在其下创建文件及子目录
项目二:
- 根据需求创建用户和组
- 由于这台服务器由公司三个部门共同使用 ,请创建对应的组账户分别为:technical,sales,finance
#groupadd technical
#groupadd sales
#group finance
#tail –n 3 /etc/group
- 为各部门的经理创建用户账号,技术部经理james,销售部经理alice,财务部经理bruce
#useradd –G technical –u 2001 james
# useradd –G sales –u 2051 alice
# useradd –G finance –u 2101 bruce
- 为以下员工创建账号,技术部员工tom,销售部员工jack,财务部员工yanni,技术部实习生dick
# useradd –G technical –u 2002 tom
# useradd –G sales –u 2052 jack
# useradd –G finance –u 2102 yanni
#useradd –G technical –u 2151 dick
- 所有用户账号初始密码为123456,用户首次登录需要更改密码,密码至少使用一个月才可修改,三个月后必须修改,密码过期前10天开始提醒用户修改密码
#passwd james 其他账户相同操作
#cat initpass.txt
#cat initpass.txt |chpasswd
#chage –d 0 –m 30 –M 90 –w 10 james
#chage –d 0 –m 30 –M 90 –w 10 alice
#chage –d 0 –m 30 –M 90 –w 10 bruce
#chage –d 0 –m 30 –M 90 –w 10 tom
#chage –d 0 –m 30 –M 90 –w 10 jack
#chage –d 0 –m 30 –M 90 –w 10 yanni
#chage –d 0 –m 30 –M 90 –w 10 –E “$(date –d “6 months”)” dick
(若chage识别不了中文,可以在之前加一条Exprot LANG=en_US.UTF.8 )
--验证一下
#su – tom
- 每个用户的主组为与用户名同名的组,附加组为所在部门对应的组
# for u in james alice bruce tom jack yanni dick; do id $u;chage –l $u;echo;done
---源文件
[root@localhost tom]# for u in james alice bruce tom jack yanni dick; do id $u;chage –l $u;echo;done
uid=2001(james) gid=2001(james) groups=2001(james),501(technical)
Usage: chage [options] [LOGIN]
Options:
-d, --lastday LAST_DAY set date of last password change to LAST_DAY
-E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-h, --help display this help message and exit
-I, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-l, --list show account aging information
-m, --mindays MIN_DAYS set minimum number of days before password
change to MIN_DAYS
-M, --maxdays MAX_DAYS set maximim number of days before password
change to MAX_DAYS
-W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
uid=2051(alice) gid=2051(alice) groups=2051(alice),502(sales)
Usage: chage [options] [LOGIN]
- 实习生账号6个月后过期
#chage –d 0 –m 30 –M 90 –w 10 -E “$(date –d “6 months”)” dick
- 为统一管理,技术部用户UID范围为2001—2050,销售部用户UID范围为2051—2100,财务部用户UID范围为2101—2150,实习生UID范围为2151—2200
- 三个部门经理UID分别为2001,2051,2101
6-7-8 三题在前面
- 根据需求设置合适的权限
- 创建工作目录/var/work,除了管理员不允许任何人在/var/work目录下创建、删除文件,在此目录下新建的目录、文件默认不给予其他人任何权限
#mkdir /var/work
#setfacl –d –m o::--- /var/work
#ll –d /var/work
# gerfacl /var/work
--验证
#su –alice
#touch /var/work/test.txt --权限限制
- 在工作目录下创建各部门目录:tech,sales,finance,以及公共目录share
#mkdir /var/work/{tech,sales,finance,share}
#ll /var/work/
- 各部门目录下分别创建开放目录public
#mkdir /var/work/{tech,sales,finance}/public
#ll /var/work/{tech,sales,finance}
- 各部门目录的属主为部门经理,属组为部门组账户,共享目录属主、属组为管理员
#chown –R james:technical /var/work/tech/
#chown –R alice:sales /var/work/sales/
#chown –R bruce:finance /var/work/finance/
- 各部门目录下创建的文件、目录属组默认为部门组账户
#chmod –R g+s /var/work/{finance,sales,tech}
#ll –d /ver/work/{finance,sales,tech}
#id alice
#su – alice
#mkdir /var/work/sales/dir01
#ll –d /var/work/sales/dir01
- 各部门目录下只有部门经理可创建、删除,部门员工只可查看
#ll /var/work
#id alice
#id jack
#su – alice
#touch /var/work/sales/test1.txt
#echo “abc” > /var/work/sales/test1.txt
#su – jack
# touch /var/work/sales/test2.txt ----权限限制
#cat /var/work/sales/test1.txt
- 各部门目录下的开放目录可供三个部门的人查看,但只有所在部门的人可以修改
#setfacl –m g:technical:rx /var/work/{finance,sales,tech}
#setfacl –m g:sales:rx /var/work/{finance,sales,tech}
#setfacl –m g:finance:rx /var/work/{finance,sales,tech}
#setfacl –m g:technical:rx /var/work/{finance,sales}/public
#setfacl –m g:sales:rx /var/work/{finance,tech}/public
#setfacl –m g:finance:rx /var/work/{sales,tech}/public
#setfacl –m d:g::rx /var/work/{finance,sales,tech}/public
#setfacl –m g::rwx /var/work/{finance,sales,tech}/public
#chmod g+w /var/work/{finance,sales,tech}/public
#getfacl /var/work/{finance,sales,tech}/public
---验证
#id alice
#id jack
#id tom
#su – alice
#touch /var/work/sales/pub01.txt
#echo “abc” > /var/work/sales/pub01.txt
#exit
#su – jack
# echo “123” > /var/work/sales/public/pub01.txt
#cat /var/work/sales/public/pub01.txt
# touch /var/work/sales//public/pub02.txt
#exit
#su – tom
# echo “def” > /var/work/sales/public/pub01.txt ---权限限制
# touch /var/work/sales/public/pub03.txt ---权限限制
Su
- 共享目录下所有人都可以创建、删除,但只能删除自己创建的文件
#chmod 1777 /var/work/share
#ll –d /var/work/share
---验证
#su – tom
#touch /var/work/share/tom01.txt
#exit
#su – jack
#touch /var/work/share/jack01.txt
#ll /var/work/share
#rm –rf /var/work/share/tom01.txt ----权限限制
- 实习生只能在共享目录下创建、删除,其他所有目录均没有创建、删除权限
#setfacl –Rm u:dick:r-x /var/work/tech/
#getfacl /var/work/tech/
----验证
#su – dick
#id
#touch /var/work/tech/public/dic-pub.txt ---权限限制