LINUX用户管理及权限设置
- 格式:pdf
- 大小:317.69 KB
- 文档页数:14
Linux终端用户管理添加、删除和修改用户账户在Linux操作系统中,用户账户管理是系统管理员工作中的一项基本任务。
通过终端可以方便地完成用户账户的添加、删除和修改操作。
本文将介绍如何在Linux终端中进行用户账户管理的相关操作。
一、添加用户账户要添加一个新的用户账户,可以使用以下命令:```shellsudo useradd [选项] 用户名```其中,[选项]为可选参数,可根据需要使用不同的参数来添加用户。
常用参数如下:- `-c`:指定用户的注释。
- `-m`:自动创建与用户同名的主目录。
- `-s`:指定用户的默认Shell。
- `-g`:指定用户的主要用户组。
- `-G`:指定用户的附加用户组。
例如,要添加一个用户名为"testuser",注释为"Test User",并将其加入primarygroup主要用户组和secondarygroup附加用户组,可以使用以下命令:```shellsudo useradd -c "Test User" -g primarygroup -G secondarygroup testuser ```添加用户时,还需设置用户的密码。
可以通过以下命令为用户设置密码:```shellsudo passwd 用户名```在输入以上命令后,系统会提示你输入新密码并进行确认。
二、删除用户账户要删除一个用户账户,可以使用以下命令:```shellsudo userdel 用户名```该命令将删除指定的用户账户和相关的用户组,但不会删除用户的主目录和个人文件。
如果需要同时删除用户的主目录,可以使用以下命令:```shellsudo userdel -r 用户名```请在使用删除用户命令时,谨慎操作,确保不会误删重要用户账户。
三、修改用户账户要修改一个用户账户的属性,可以使用以下命令:```shellsudo usermod [选项] 用户名```其中,[选项]为可选参数,可根据需要使用不同的参数来修改用户属性。
Linux新增⽤户,并设置Root(管理员)权限
在使⽤Linux过程中,Root账号拥有最⼤的操作权限。
为保证Root账号安全,⼀般不直接使⽤Root账号,⽽是直接创建⼀个拥有Root权限的其它账号来使⽤。
详细操作步骤如下
第⼀步,创建⽤户,如下图所⽰:
执⾏命令: usermod -a -G wheel ypsroot 将⽤户加⼊管理权限组
第⼆步,修改sudoers⽂件为可修改状态,如下图所⽰:
第三步,修改sudoers⽂件,新增⼀⾏指令,使新⽤户和Root⼀样的权限,如下图所⽰:
⼩细节:ypsroot ALL=(ALL) NOPASSWD: ALL 可以让ypsroot账号在操作时不输⼊密码!(nopasswd:)
然后,保存退出即可!
在使⽤的时候,记住指令前⾯要加 sudo
如下图:
上⾯我们修改sudoers⽂件为可修改,此时我们应该重新把它修改为只读模式:
执⾏如下命令:
chmod -v u-w /etc/sudoers。
管理用户和权限Linux终端中的useradd和asswd命令在Linux服务器中,管理用户和权限是非常重要的任务。
为了确保系统安全性,并且方便地管理用户账户和权限,Linux提供了一些有用的命令,比如useradd和passwd。
一、useradd命令useradd命令用于创建新的用户账户。
使用该命令时,需要提供用户名作为参数,并可选择指定一些选项,如用户ID、用户主目录路径等。
下面是一个示例:```bash$ useradd -u 1001 -d /home/john -s /bin/bash john```在上述示例中,-u参数用于指定用户ID为1001,-d参数指定用户主目录路径为/home/john,-s参数指定用户的默认Shell为/bin/bash。
最后的参数john是要创建的用户名。
二、passwd命令passwd命令用于设置或修改用户的密码。
使用该命令时,需要提供用户名作为参数,然后系统会要求输入新的密码,以确保账户安全。
下面是一个示例:```bash$ passwd johnChanging password for user john.New password:Retype new password:passwd: all authentication tokens updated successfully.```在上述示例中,系统会提示输入新的密码,然后要求重新输入一次以确认。
一旦完成,系统将显示成功更新密码的消息。
三、用户管理实例接下来,我们将通过一个实例来演示如何使用useradd和passwd命令进行用户管理。
假设我们需要创建一个名为"guest"的用户账户,并设置密码为"guest123",请按照以下步骤操作:首先,我们使用useradd命令创建新用户:```bash$ useradd guest```然后,我们使用passwd命令为该用户设置密码:```bash$ passwd guestChanging password for user guest.New password:Retype new password:passwd: all authentication tokens updated successfully.```输入两次新密码后,系统将显示成功更新密码的消息。
Linux系统中账号及权限管理⽬录前⾔作为⼀个多⽤户、多服务的服务器操作系统,Linux提供了严格的权限管理机制,主要从⽤户⾝份、⽂件权限两⽅⾯对资源访问进⾏限制。
本⽂将分别介绍Linux系统中⽤户和组账号的管理、⽂件权限和归属的管理、⽂件和⽬录的权限管理、⽂件和⽬录的归属挂你的相关知识,帮助⼤家解决问题。
⼀.管理⽤户账号和组账号1.1⽤户账号和组账号概述Linux基于⽤户⾝份对资源访问进⾏控制●⽤户帐号:①.超级⽤户:root⽤户是 Linux系统中默认的超级⽤户账号,对主机拥有最⾼的权限,类似于 Windows系统中的Administrator⽤户。
只有当进⾏系统管理、维护任务时,才建议使⽤root⽤户登录系统,⽇常事务处理建议只使⽤普通⽤户账号。
②.普通⽤户:普通⽤户账号需要由root⽤户或其他管理员⽤户创建,拥有的权限受到⼀定限制,⼀般只在⽤户⾃⼰的宿主⽬录中拥有完整权限。
③.程序⽤户:在安装 Linux系统及部分应⽤程序时,会添加⼀些特定的低权限⽤户账号,这些⽤户⼀般不允许登录到系统,⽽仅⽤于维持系统或某个程序的正常运⾏,如bin、 daemon、ftp、mail等。
●组帐号:①.基本组(私有组):基本组(私有组):基本组账号只有⼀个,⼀般为创建⽤户时指定的组。
在/etc/passwd⽂件中第4字段记录的即为该⽤户的基本组 GID号。
②.附加组(公共组):⽤户除了基本组以外,额外添加指定的组。
●UID和GID:UID (User lDentity,⽤户标识号):Linux系统中的每⼀个⽤户账号都有⼀个数字形式的⾝份标记,称为UID,对于系统核⼼来说,UID作为区分⽤户的基本依据,原则上每个⽤户的UID号应该是唯⼀的。
root⽤户账号的UID号为固定值0.⽽程序⽤户账号的UID号默认在1-499之间,500-60000的UID号默认分配给普通⽤户账号使⽤。
GID (Group lDentify,组标识号):与UID相类似,每⼀个组账号也有⼀个数字形式的⾝份标记,称为GID。
Linux-权限管理(⽂件权限)Linux - 权限管理(⽂件权限)⼀:基本权限1.基本权限介绍基本权限类型类型全拼释义权限位r read可读4w write可写2x execute可执⾏1权限的归属归属字母属主u属组g其他⽤户o2.设置权限修改属主、属组# 修改⽂件:1.txt的属主为:darker 属组为:human[root@localhost ~]# chown darker.human 1.txt# 修改⽂件:1.txt的属主为:darker[root@localhost ~]# chown darker 1.txt# 修改⽂件:1.txt的属组为:human[root@localhost ~]# chown .human 1.txt# 递归修改⽬录:file1的属主为:darker 属组为:human[root@localhost ~]# chown -R darker.human file1修改u、g、o对应的权限# 加减法# 修改⽂件:1.txt的权限为:属主为u 属组为w[root@localhost ~]# chmod u+x,g-w 1.txt# 赋值法# 修改⽂件:1.txt的权限为:所有⽤户为rwx[root@localhost ~]# chmod a=rwx 1.txt# 修改⽂件:1.txt的权限为:-[root@localhost ~]# chmod a=- 1.txt# 修改⽂件:1.txt的权限为:属主属组为rw 其他⽤户为r[root@localhost ~]# chmod ug=rw,o=r 1.txt# 数字# 修改⽂件:1.txt的权限为:所有⽤户的权限为rwx[root@localhost ~]# chmod 7771.txt# 递归修改⽬录:file1的权限为:所有⽤户的权限为rwx[root@localhost ~]# chmod 777 file1注意:把某⼀个⾮属主⽤户添加到⽂件的属组⾥,他就拥有了该组的权限,⽽不再是其他⼈权限对⽂件/⽬录的意义⽂件:ls -l ⽂件名权限释义r可以cat读取⽂件内容w可以修改⽂件x 可以执⾏⽂件代码,如果该⽂件的代码是编译好的结果那么只有x权限即可执⾏但如果该⽂件的代码是⼀个解释型的脚本程序则需要配合r权限才可执⾏⽬录:ls -dl ⽂件名权限释义r可以ls浏览⽂件下的内容w可以在⽬录下创建新⽂件or⽬录x 可以执⾏⽬录下的程序,除了对⽬录有执⾏权限外,还要对程序⽂件有执⾏权限才⾏可以正常cd切换到⽬录下涉及到多层⽬录如/a/b/c,需要对每⼀级都有x权限才可以正常⾛到下⼀级对⽂件夹的操作(不操作⽂件内容),需要当前⽤户具备的权限对沿途所有⽂件夹有x权限对⽬标⽂件夹有r或w权限权限释义r可以浏览w可以创建、删除、移动⼦⽂件和⼦⽬录对⽂件的操作(操作⽂件内容),需要当前⽤户具备的权限对沿途所有⽂件夹有x权限对⽬标⽂件有r或w权限权限释义r可以读取⽂件内容w可以修改⽂件内容注意点:vim修改的原理是将原⽂件删掉,然后再将内容的内容覆盖写⼊了新⽂件,新⽂件名重命名为原⽂件名验证vim修改的原理# (root⽤户)切换到/usr/local⽬录[root@localhost local]# cd /usr/local# (root⽤户)递归创建test01/dir1⽬录[root@localhost local]# mkdir -p test01/dir1# (root⽤户)递归修改⽬录test01权限为733[root@localhost local]# chmod -R 733 test01# (root⽤户)在test01⽬录下创建1.txt并写⼊内容“123”[root@localhost local]# echo "123" > test01/1.txt# (root⽤户)查看1.txt的内容[root@localhost local]# cat test01/1.txt123# (root⽤户)查看test01⽬录下的⽂件1.txt的详情信息:其他⽤户只有(r)读的权限[root@localhost local]# ll test01/1.txt-rw-r--r--. 1 root root 4 Nov 2510:02 test01/1.txt# (root⽤户)查看test01⽬录下的⽂件1.txt的iNode信息[root@localhost local]# stat test01/1.txtFile: ‘test01/1.txt’Size: 4 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 23609 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Context: unconfined_u:object_r:usr_t:s0Access: 2020-11-2510:02:58.471562017 -0500Modify: 2020-11-2510:02:58.471562017 -0500Change: 2020-11-2510:02:58.471562017 -0500Birth: -# 切换到其他⽤户/⽤其他⽤户登录PS C:\Users\Darker> ssh darker@192.168.50.101darker@192.168.50.101's password:[darker@localhost ~]$ whoamidarker# (普通⽤户)⽤vim打开/usr/local/test01⽬录下的1.txt[darker@localhost ~]$ vim /usr/local/test01/1.txt123~~~"/usr/local/test01/1.txt" [readonly] 1L, 4C 1,1 All # [readonly] 只读# 按i进⼊插⼊模式-- INSERT -- W10: Warning: Changing a readonly file# (普通⽤户)修改1.txt的内容,强制保存并退出456Esc:wq!# 回到原来的root⽤户的窗⼝# (root⽤户)查看1.txt的内容[root@localhost local]# cat test01/1.txt456# (root⽤户)查看test01⽬录下的⽂件1.txt的详情信息:属主和属主变了[root@localhost local]# ll test01/1.txt-rw-r--r--. 1 darker darker 4 Nov 2510:21 test01/1.txt# (root⽤户)查看test01⽬录下的⽂件1.txt的iNode信息[root@localhost local]# stat test01/1.txtFile: ‘test01/1.txt’Size: 4 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 23609 Links: 1Access: (0644/-rw-r--r--) Uid: ( 1000/ darker) Gid: ( 1000/ darker)Context: unconfined_u:object_r:usr_t:s0Access: 2020-11-2510:30:54.822530748 -0500Modify: 2020-11-2510:21:17.823541511 -0500Change: 2020-11-2510:21:17.824541511 -0500Birth: -结论vim修改⽂件时:会将原⽂件删除,⽣成新的⽂件,属主和主组会变成修改的那个⽤户和⽤户所在的组⼆:特殊权限权限权限位SUID4SGID2权限权限位SBIT1SUID1.疑问普通⽤户既不是root也不属于root组,因此它对/etc/shadow⽂件没有任何权限(全是---)# 查看/etc/shadow信息[darker@localhost ~]# ll /etc/shadow----------. 1 root root 970 Nov 2407:29 /etc/shadow但是:普通⽤户为何可以⽤passwd直接修改密码?并且修改的是/etc/shadow⽂件,如何实现的?[darker@localhost ~]$ ll `which passwd`-rwsr-xr-x. 1 root root 27832 Jun 102014 /usr/bin/passwd这⾥可以看到,本应为rwx的第三个x变成了s,这就是s权限2.s权限的特殊之处SUID权限仅对⼆进制可执⾏⽂件有效(对⽬录⽆效)如果执⾏者对于该⼆进制可执⾏⽂件具有x的权限,执⾏者将具有该⽂件的所有者的权限本权限仅在执⾏该⼆进制可执⾏⽂件的过程中有效3.权限设定的⽅法字母表⽰法chmod u+s 可执⾏⽂件 # 给属主添加s权限chmod u-s 可执⾏⽂件 # 删除属主的s权限数字表⽰法(第1位4表⽰SUID,后3位表⽰普通权限 rwx)chmod 4755可执⾏⽂件 # 添加SUID权限到⼆进制可执⾏⽂件chmod 0xxx ... # 可以删除⽂件的SUID(但是⽆法删除⽬录的SUID)4.实例# (root⽤户)查看which cat[root@localhost ~]# ll `which cat`-rwxr-xr-x. 1 root root 54048 Nov 202015 /usr/bin/cat# (普通⽤户)查看/etc/shadow:没有权限(普通⽤户虽然是r-x,但是⽆法直接查看)[darker@localhost local]$ cat /etc/shadowcat: /etc/shadow: Permission denied# (root⽤户)修改 which cat 权限[root@localhost ~]# chmod u+s `which cat` # 或者 chmod 4755 `which cat`#(root⽤户)再次查看which cat[root@localhost ~]# ll `which cat`-rwsr-xr-x. 1 root root 54048 Nov 202015 /usr/bin/cat# (普通⽤户)查看/etc/shadow:有权限了[darker@localhost local]$ cat /etc/shadowroot:$6$Jvw3z/jmU1ASO4P1$vpTJ5OGEtfBOmIpjyK55k87iQPHXCC3.kKOFW9jkyslqC2DMdN7SZdT/zYRfmQ4hBAQXG6CQ4kKdRQ8eFqChf.::0:99999:7::: bin:*:16659:0:99999:7:::daemon:*:16659:0:99999:7:::adm:*:16659:0:99999:7:::lp:*:16659:0:99999:7:::...5.上例的⼯作原理环境前提:Linux中有1个⼆进制程序:cat,属组属组都是rootLinux中有⼀个系统⽂件:/etc/shadow,属组属组是: root:root有⼀个普通⽤户:darker普通⽤户:darker 属于其他⽤户,对⼆进制程序:cat 有执⾏(x)的权限普通⽤户:darker 对系统⽂件:/etc/shadow 没有任何权限默认情况下:普通⽤户:darker 执⾏⼆进制程序:cat系统会创建1个:cat进程该进程的属主属组是该程序的发起者:darker,也就是: darker:darkercat进程访问系统⽂件:/etc/shadowcat进程的属主和属主:darker:darker /etc/shadow⽂件的属主和属主:root:root⼆者的属主属组不匹配,所以被拒绝访问了:Permission denied给⼆进制程序:cat 设置SUID之后:普通⽤户:darker 执⾏⼆进制程序:cat系统会创建1个:cat进程执⾏者对于该⼆进制可执⾏⽂件具有 x 的权限,执⾏者将拥有该⽂件的属组的权限该进程属主是程序的发起者:darker,属组是cat原来的:root,属主属组就是:darker:rootcat进程访问系统⽂件:/etc/shadowcat进程的属主和属主:root:darker /etc/shadow⽂件的属主和属主:root:root⼆者的属主匹配,可以正常访问SGID1.权限设定的⽅法字母表⽰法chmod g+s ⽂件/⽬录 # 给⽂件/⽬录的属组添加s权限chmod g-s ⽂件/⽬录 # 删除⽂件/⽬录的属组的s权限数字表⽰法(第1位2表⽰SGID,后3位表⽰普通权限 rwx)chmod 2755⽂件/⽬录 # 给⽂件/⽬录的属组添加s权限chmod 0755⽂件/⽬录 # 删除⽂件/⽬录的属组的s权限chmod 755⽂件/⽬录 # 同上2.⽂件权限位的表⽰[root@localhost ~]# ll 1.txt-rwxr-sr-x. 1 root root 3243 Nov 2515:411.txt3.SGID相关说明作⽤在⼆进制可执⾏⽂件上时:执⾏有SGID权限的程序时,该⽤户将继承该程序的属组权限作⽤在⽬录上时:该⽬录下所有⽤户新建的⽂件都会⾃动继承该⽬录的属组当⼀个⽤户对某⼀⽬录有写和执⾏权限时,该⽤户就可以在该⽬录下建⽴⽂件如果该⽬录同时⽤SGID修饰,则该⽤户在这个⽬录下建⽴的⽂件都是属于这个⽬录的属组4.实例# (root⽤户)切换到/usr/loca/⽬录并创建⽬录:test02[root@localhost ~]# cd /usr/local[root@localhost local]# mkdir test02# (root⽤户)查看⽬录:test02 的信息[root@localhost local]# ls -dl test02/drwxr-xr-x. 2 root root 6 Nov 2514:19 test02/# !测试(root⽤户)在⽬录:test02 下创建⽂件:1.txt 并查看该⽂件的信息[root@localhost local]# touch /usr/local/test02/1.txt[root@localhost local]# ll /usr/local/test02/1.txt-rw-r--r--. 1 root root 0 Nov 2514:19 /usr/local/test02/1.txt# !测试(普通⽤户)在⽬录:test02 下创建⽂件:2.txt 并查看该⽂件的信息[darker@localhost ~]$ touch /usr/local/test02/2.txt[darker@localhost ~]$ ll /usr/local/test02/2.txt-rw-rw-r--. 1 darker darker 0 Nov 2514:20 /usr/local/test02/2.txt# (root⽤户)修改⽬录:test02 的权限[root@localhost local]# chmod 2773 test02# (root⽤户)再次查看⽬录:test02 的信息[root@localhost local]# ls -dl test02/drwxr-sr-x. 2 root root 6 Nov 2514:20 test02/# !测试(root⽤户)在⽬录:test02 下创建⽂件:3.txt 并查看该⽂件的信息[root@localhost local]# touch /usr/local/test02/3.txt[root@localhost local]# ll /usr/local/test02/3.txt-rw-r--r--. 1 root root 0 Nov 2514:21 /usr/local/test02/3.txt# !测试(普通⽤户)在⽬录:test02 下创建⽂件:4.txt 并查看该⽂件的信息[darker@localhost ~]$ touch /usr/local/test02/4.txt[darker@localhost ~]$ ll /usr/local/test02/4.txt-rw-rw-r--. 1 darker root 0 Nov 2514:21 /usr/local/test02/4.txtSBITSBIT 是the restricted deletion flag or sticky bit的简称,有时也称为Sticky,粘滞位SBIT 与 SUID 和 SGID 的关系并不⼤1.权限设定的⽅法字母表⽰法chmod o+t ⽂件/⽬录 # 给⽂件/⽬录的其他⽤户设置Stickychmod o-t ⽂件/⽬录 # 删除⽂件/⽬录的其他⽤户的Sticky数字表⽰法(第1位1表⽰添加Sticky位,后3位表⽰普通权限 rwx)chmod 1755⽂件/⽬录 # 给⽂件/⽬录的其他⽤户设置Stickychmod 0755⽂件/⽬录 # 删除⽂件/⽬录的其他⽤户的Stickychmod 755⽂件/⽬录 # 同上2.⽂件权限位的表⽰⽂件other位有x权限,并且⽤t代替了,表⽰被设置了Sticky如果other位没有x权限,会显⽰为⼤写T,表⽰有故障(权限⽆效)[root@localhost local]# ls -dl test03drwxr-xr-t. 2 root root 18 Nov 2514:34 dir013.相关说明对于⼀个多⼈可写的⽬录,如果设置了sticky,则每个⽤户仅能删除和改名⾃⼰的⽂件/⽬录只能作⽤在⽬录上,普通⽂件设置⽆意义,⽽且会被Linux内核忽略⽤户在设置 Sticky 权限的⽬录下新建的⽬录不会⾃动继承Sticky权限4.实例# (root⽤户)切换到 /usr/loca/⽬录[root@localhost ~]# cd /usr/local# (root⽤户)递归创建test03⽬录及2个⼦⽬录dir1和dir2[root@localhost local]# mkdir -p test03/dir{1,2}# (root⽤户)创建2个⽤户:user01、user02[root@localhost local]# useradd user01[root@localhost local]# useradd user02# (root⽤户)分别设置dir1和dir2的属主属组为user01和user02[root@localhost local]# chown -R user01:user01 test03/dir1[root@localhost local]# chown -R user02:user02 test03/dir2# (root⽤户)查看⽬录:test03的信息[root@localhost local]# ls -dl test03drwxr-xr-x. 4 root root 28 Nov 2515:37 test03[root@localhost local]# ll test03total 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# (root⽤户)修改⽬录:test03 的权限[root@localhost local]# chmod 1777 test03# (root⽤户)查看⽬录:test03的信息[root@localhost local]# ls -dl test03drwxrwxrwt. 4 root root 28 Nov 2515:37 test03[root@localhost local]# ll test03total 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# 切换到普通⽤户:user01[root@localhost local]# su - user01# !测试(普通⽤户)切换到test03⽬录[user01@localhost ~]$ cd /usr/local/test03# !测试(普通⽤户)查看当前⽬录下的信息[user01@localhost test03]$ lltotal 0drwxr-xr-x. 2 user01 user01 6 Nov 2515:37 dir1drwxr-xr-x. 2 user02 user02 6 Nov 2515:37 dir2# !测试(普通⽤户)⽤户user01将dir1重命名为dir11[user01@localhost test03]$ mv dir1 dir11# !测试(普通⽤户)⽤户user01将dir2重命名为dir22[user01@localhost test03]$ mv dir2 dir22mv: cannot move ‘dir2’ to ‘dir22’: Operation not permitted# !测试(普通⽤户)⽤户user01在dir11⽬录中创建⽂件:1.txt[user01@localhost test03]$ touch dir11/1.txt# !测试(普通⽤户)⽤户user01在dir2⽬录中创建⽂件:2.txt[user01@localhost test03]$ touch dir2/2.txttouch: cannot touch ‘dir2/2.txt’: Permission denied5.注意点SBIT ⽬前只对⽬录有效,⽤来阻⽌⾮⽂件的所有者删除⽂件:⽐较常见的例⼦就是/tmp⽬录权限信息中最后⼀位t表⽰该⽬录被设置了 SBIT 权限SBIT 对⽬录的作⽤是:当⽤户在该⽬录下创建新⽂件或⽬录时,仅有⾃⼰和 root 才有权⼒删除,主要作⽤于⼀个共享的⽂件夹(⽬录)三:chattr引⾔你是否遇到过⽂件或⽬录具有可读写权限,但是使⽤root⽤户删除、修改时提⽰"Operation not permitted"的情况?可能是由chattr设置了⽂件的隐藏保护权限导致通过chattr命令修改⽂件或⽬录属性能够提⾼系统的安全性与chmod命令相⽐,chmod只是改变⽂件的读写、执⾏权限,更底层的属性控制是由chattr命令改变的。
Shell脚本实现Linux系统用户权限管理在Linux操作系统中,用户权限管理是一个重要的方面,它可以确保系统的安全性并控制不同用户对系统资源的访问权限。
为了简化和自动化用户权限管理的过程,可以使用Shell脚本来实现。
本文将介绍如何使用Shell脚本来实现Linux系统用户权限管理。
一、用户与权限在Linux系统中,每个用户都有一个唯一的用户名,以及与其关联的用户组。
每个文件和目录也有所属用户和用户组,同时针对每个文件和目录,都可以设置特定的权限,包括读取、写入和执行权限。
二、Shell脚本基础Shell脚本是一种用来自动化执行一系列命令的脚本语言。
在Linux 系统中,常用的Shell脚本语言有Bash、Sh、Csh等。
下面是一个简单的Shell脚本示例,用来创建用户并设置权限:```bash#!/bin/bash# 创建新用户echo "请输入新用户的用户名:"read usernameuseradd $username# 设置用户密码echo "请输入新用户的密码:"read -s passwordecho $password | passwd --stdin $username# 设置用户组echo "请输入新用户所属的用户组:"read groupnamegroupadd $groupnameusermod -g $groupname $username# 设置用户权限echo "请输入新用户的访问权限(r/w/x):"read permissionchmod $permission /home/$username```以上示例中,使用了一些常见的Shell脚本语法,如读取输入、调用命令和变量赋值等。
你可以根据实际需求进行修改和扩展。
三、用户权限管理脚本下面是一个更完整的Shell脚本示例,用于实现用户权限管理:```bash#!/bin/bash# 显示已有用户和用户组echo "已有用户列表:"awk -F: '{print $1}' /etc/passwdecho "已有用户组列表:"awk -F: '{print $1}' /etc/group# 创建新用户echo "请输入新用户的用户名:"read usernameuseradd $username# 设置用户密码echo "请输入新用户的密码:"read -s passwordecho $password | passwd --stdin $username # 设置用户组echo "请输入新用户所属的用户组:" read groupnamegroupadd $groupnameusermod -g $groupname $username# 设置用户权限echo "请输入新用户的访问权限(r/w/x):"read permissionchmod $permission /home/$username# 显示用户信息echo "新用户信息:"grep -E "^$username:" /etc/passwd```以上示例中,首先通过awk命令来显示已有的用户和用户组列表。
实验名称:账户和权限管理
实验目的、要求:
1.掌握Linux中用户的添加、删除和属性设置方法
2.熟悉Linux中组群的添加、删除和属性设置方法
3.熟悉Linux中用户和组群的相关配置文件
4.掌握Linux中文件和目录权限的设置
实验原理:
Linux操作系统原理
主要设备、器材:
微机,Linux操作系统
实验步骤及原始数据记录:
1 使用命令创建用户账户zhangsan,并设置其口令为111111,设置用户名全称为张三,办公室电话为57111111。
2 使用命令修改用户账户zhangsan的UID为700,其Shell类型为/bin/ksh。
3 使用命令设置账户zhangsan两次改变密码之间相距的最小天数为5天,两次改变密码之间相距的最大天数为20天。
4 使用命令删除用户账户zhangsan,并且在删除该用户的同时一起删除其主目录。
5 使用命令创建组群group1,并且在创建时设置其GID为800。
6 使用命令修改组群group1的新组群名称为shanghai。
7 建立文件file1,查看file1的权限,用文字设定法添加文件所有者的执行权限,然后删除文件的执行权限。
8 建立文件file2,查看file2的权限,用数字设定法添加文件所有者的执行权限,然后删除文件的执行权限。
9 查看passwd命令对应的执行文件的权限,说明该文件权限的特殊作用。