1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Linux基础篇——Linux用户管理 组管理 权限管理

Linux基础篇——Linux用户管理 组管理 权限管理

时间:2021-04-20 14:43:36

相关推荐

Linux基础篇——Linux用户管理 组管理 权限管理

文章目录

==背 景====查看所有用户和用户组====增加一个用户组并制定id====useradd增加一个用户到用户组====usermod 修改用户信息====删除用户和用户组====配置用户或者用户组的sudo权限====权限介绍及管理====权限介绍====权限管理====修改权限`chmod`====修改所有者`chown`====修改所属组`chgrp`====其他不常用的权限==

背 景

linux最优秀的地方就在于她的多人多任务环境,而为了让各个使用者具有较高的保密安全,linux将文件可存取的身份分为三个类别,分别是ownergroupothersowner其实就是一个用户,好比你自己,group就是这个用户所属的组,好比你的家庭,对于不在这group内的其他人或者组对你来说就是others,非常的拟人对吧,综上所述,ownergroupothers三者其实都是仅仅由用户和用户组组成,并且用户必须有用户组,如图1;

root作为神的存在,拥有所有组,所有用户的权限,一般人接触不到;二明作为一个用户,他可以隶属不同的组,既可以属于自己家的组,也可以属于幼儿园小一班的组;其他没有二明的组,如张家对于小明来说,就是其他组了;所以,其他组是相对而言的,比如对于小张,明家组就是他的其他组;图1 用户(owner)、组(group)、其他组(others)的关系图

查看所有用户和用户组

所有用户信息都在/etc/passwd下,所以查看只需要指令cat /etc/passwd,具体如下:

[root@node7 ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:999:998:User for polkitd:/:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinchrony:x:998:996::/var/lib/chrony:/sbin/nologin

/etc/shadow用户的密码是存在此文件下的,一样可以利用cat /etc/shadow;内容是是加过密的,你是看不懂的;

所有用户信息都在/etc/group下,所以查看只需要指令cat /etc/group`,如下:

[root@node7 ~]# cat /etc/grouproot:x:0:bin:x:1:daemon:x:2:sys:x:3:adm:x:4:tty:x:5:disk:x:6:lp:x:7:mem:x:8:kmem:x:9:wheel:x:10:cdrom:x:11:mail:x:12:postfixman:x:15:dialout:x:18:floppy:x:19:games:x:20:tape:x:33:video:x:39:ftp:x:50:lock:x:54:audio:x:63:nobody:x:99:users:x:100:utmp:x:22:utempter:x:35:input:x:999:systemd-journal:x:190:systemd-network:x:192:dbus:x:81:polkitd:x:998:ssh_keys:x:997:sshd:x:74:postdrop:x:90:postfix:x:89:chrony:x:996:

增加一个用户组并制定id

实战:新增一个用户组hadoop,并制定id为 1002,指令如此下:

sudo groupadd -g 1002 hadoop

再次执行cat /etc/group指令,可以看到了新增了hadoop,如下:

[root@node7 ~]# cat /etc/grouproot:x:0:bin:x:1:daemon:x:2:sys:x:3:adm:x:4:tty:x:5:disk:x:6:lp:x:7:mem:x:8:kmem:x:9:wheel:x:10:cdrom:x:11:mail:x:12:postfixman:x:15:dialout:x:18:floppy:x:19:games:x:20:tape:x:33:video:x:39:ftp:x:50:lock:x:54:audio:x:63:nobody:x:99:users:x:100:utmp:x:22:utempter:x:35:input:x:999:systemd-journal:x:190:systemd-network:x:192:dbus:x:81:polkitd:x:998:ssh_keys:x:997:sshd:x:74:postdrop:x:90:postfix:x:89:chrony:x:996:hadoop:x:1002:

useradd增加一个用户到用户组

指令:useradd

选项与参数:

-u : 后面接的是 UID , 是一组数字。 直接指定一个特定的 UID 给这个帐号;

-g : 后面接的那个群组名称就是我们上面提到的 initial group 啦~

该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。

-G : 后面接的群组名称则是这个帐号还可以加入的群组。

这个选项与参数会修改 /etc/group 内的相关数据喔!

-M : 强制! 不要创建使用者主文件夹! ( 系统帐号默认值)

-m : 强制! 要创建使用者主文件夹! ( 一般帐号默认值)

-c : 这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设置的啦~

-d : 指定某个目录成为主文件夹, 而不要使用默认值。 务必使用绝对路径!

-r : 创建一个系统的帐号, 这个帐号的 UID 会有限制 ( 参考 /etc/login.defs)

-s : 后面接一个 shell , 若没有指定则默认是 /bin/bash 的啦~

-e : 后面接一个日期, 格式为“YYYY-MM-DD”此项目可写入 shadow 第八字段,

亦即帐号失效日的设置项目啰;

-f : 后面接 shadow 的第七字段项目, 指定密码是否会失效。 0为立刻失效,

-1 为永远不失效( 密码只会过期而强制于登陆时重新设置而已。 )

实战:新增一个用户hadoop到用户组hadoop;

sudo useradd hadoop -g 1002 -u 1003 -m

再调用cat /etc/passwd查看用户,注意,新建了一个用户,就会在/home目录下下新增一个它的根目录,如/home/hadoop指令如此下:

[root@node7 ~]# sudo useradd hadoop -g 1002 -u 1003 -m[root@node7 ~]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:999:998:User for polkitd:/:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinchrony:x:998:996::/var/lib/chrony:/sbin/nologinhadoop:x:1003:1002::/home/hadoop:/bin/bash[hadoop@node7 home]$ cd /home[hadoop@node7 home]$ ls -al总用量 0drwxr-xr-x. 3 root root 20 4月 12 01:15 .dr-xr-xr-x. 17 root root 224 4月 12 ..drwx------. 2 hadoop hadoop 62 4月 12 01:15 hadoop

新增的这个用户是没有密码的,所以必须给这个用户赋予密码,指令如下:

[root@node7 ~]# sudo passwd hadoop更改用户 hadoop 的密码 。新的 密码:无效的密码: 密码少于 8 个字符重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新

扩展

让一个已有的用户增加到一个已有的用户组中

命令:usermod -g 组名 用户名

usermod 修改用户信息

usermod [-cdegGlsuLU] username

选项与参数:

-c : 后面接帐号的说明, 即 /etc/passwd 第五栏的说明栏, 可以加入一些帐号的说明。

-d : 后面接帐号的主文件夹, 即修改 /etc/passwd 的第六栏;

-e : 后面接日期, 格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据啦!

-f : 后面接天数, 为 shadow 的第七字段。

-g : 后面接初始群组, 修改 /etc/passwd 的第四个字段, 亦即是 GID 的字段!

-G : 后面接次要群组, 修改这个使用者能够支持的群组, 修改的是 /etc/group 啰~

-a : 与 -G 合用, 可“增加次要群组的支持”而非“设置”喔!

-l : 后面接帐号名称。 亦即是修改帐号名称, /etc/passwd 的第一栏!

-s : 后面接 Shell 的实际文件, 例如 /bin/bash 或 /bin/csh 等等。

-u : 后面接 UID 数字啦! 即 /etc/passwd 第三栏的数据;

-L : 暂时将使用者的密码冻结, 让他无法登陆。 其实仅改 /etc/shadow 的密码栏。

-U : 将 /etc/shadow 密码栏的 ! 拿掉, 解冻啦!

删除用户和用户组

删除用户指令sudo userdel hadoop -r-r 是吧参数是把在/home下 的 根目录也一起删除;删除用户组指令sudo groupdel hadoop删除用户组前必须要先删除掉里面的用户!

配置用户或者用户组的sudo权限

现实企业内开发的时候一般都不会给root账号的,所以就要赋予一些账号sudo权限(sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具

配置步骤如下:

登陆或切换到root用户下;添加sudo文件的写权限,命令是:chmod u+w /etc/sudoers编辑sudoers文件:vi /etc/sudoers或直接visudo

图2 编辑/etc/sudoers文件

如图2,/etc/sudoers文件内找到这行root ALL=(ALL) ALL,在他下面添加hadoop ALL=(ALL) ALL(注:这里的hadoop是你的用户名)

你可以根据实际需要在sudoers文件中按照下面四行格式中任意一条进行添加:

root ALL=(ALL) ALL#以下是添加内容hadoop ALL=(ALL)ALL%hadoop ALL=(ALL)ALLhadoop ALL=(ALL)NOPASSWD: ALL%hadoop ALL=(ALL)NOPASSWD: ALL

第一行:允许用户hadoop执行sudo命令(需要输入密码)。

第二行:允许用户组hadoop里面的用户执行sudo命令(需要输入密码)。

第三行:允许用户hadoop执行sudo命令,并且在执行的时候不输入密码。

第四行:允许用户组hadoop里面的用户执行sudo命令,并且在执行的时候不输入密码。

撤销sudoers文件写权限,命令:chmod u-w /etc/sudoers

至此,hadoop用户或者用户组就可以使用sudo了,让你就算没有root用户也可以做到root的功能。

权限介绍及管理

权限介绍

root@node1 myfile]# ll总用量 0drwxr-xr-x. 2 root root 4096 4月 18 17:58 test-rw-r--r--. 1 root root 0 4月 18 17:58 test.txt

进入Linux后,输入ll指令,浏览当前目录下有哪些文件的意思,一般会出现如上返回,这些就是文件相关的权限及信息;

以空格分隔符;

第一列数据:drwxr-xr-x-rw-r--r--:共10位;

第1位:表示文件类型,-表示文件;d表示目录;l表示软链接(类似windows上的快捷方式);c:字符设备(键盘,鼠标);b:块文件,硬盘等;……

第2-4位,共3位,表示文件拥有者(owner)对文件的权限,r表示文件owner可读,w表示文件owner可写;x表示文件owner可执行;-表示文件owner无对应权限;rwx三者的位置是不会变的;

第5-7位,共3位,表示文件组(group)对文件的权限,r表示文件owner可读,w表示文件owner可写;x表示文件owner可执行;-表示文件owner无对应权限;rwx三者的位置是不会变的;

第8-10位,共3位,表示其他组(others)对文件的权限,r表示文件owner可读,w表示文件owner可写;x表示文件owner可执行;-表示文件owner无对应权限;rwx三者的位置是不会变的;

.:忽略,没啥用

第二列数据:如2,1,如果是目录,表示改目录下的子目录(含隐藏目录),如果是文件,表示硬链接数;

第三列数据:root表示文件拥有者(owner)名称;

第四列数据:root表示文件所属组(group)名称;

第五列数据:40960,表示文件的大小,默认单位是B,如果是目录,通常是4096,但不是表示目录的大小;

第六、七、八列:表示文件或目录的最后修改日期,为4月18日 17:58修改;

第九列:表示文件或者目录的名称;

同样的r、x、w相对于对于文件和目录,确略有不同的含义,具体如表1;

表1 文件 、目录权限详解

文件权限代表的数据含义:r=4;w=2;x=1;如drwxr-xr-x表示该目录的数字含义755,-rw-r--r--表示该文件的数字含义644;

那文件的 权限一般怎么给呢?这个要结合文件的性质以及内容,给你一个你认为合理的权限布局,一般文件设置755权限,即rwxr-wr-w;机密权限文件设置600,即rw-------;

权限管理

修改权限chmod

第一种+,-,=变更权限;

# 给用户拥有者为可读,可写,可执行,所属组权限为可读可写,其他组为可执行chmod u=rwx,g=rw,o=x test.txt # 给所属组权限去掉可写,其他组为新加可读chmod g-w,o+r test.txt# 给所有(拥有者,所属组,其他组)新增可执行权限chmod a+x test.txt

第二种,通过数字变更权限;

r=4,w=2,x=1; rwx=4+2+1=7

# 给用户拥有者为可读,可写,可执行,所属组权限为可读可写,其他组为可执行chmod u=rwx,g=rw,o=x test.txt # 用数字实现以上操作chmod 751 test.txt

常用还会加一个-R参数,实现整个目录内所有文件都变更权限;

# 将test目录及目录内的所有文件权限变成755chmod 755 -R test

修改所有者chown

# 改变text.txt文件的所有者为hadoop用户chown hadoop test.txt # 将test.txt 文件的拥有者和所属组改成hadoop用户和supergroup 组chown hadoop:supergroup test.txt # 将test目录及目录内的所有文件或目录都改成hadoop和supergroup 组chmod hadoop:supergroup -R test

常用还会加一个-R参数,实现整个目录内所有文件都变更拥有者;

修改所属组chgrp

# 改变text.txt文件的所属组变成supergroup组chgrp supergroup test.txt # 将test目录及目录内的所有文件或目录都改成supergroup 组chgrp supergroup -R test.txt

常用还会加一个-R参数,实现整个目录内所有文件都变更所属组;

其他不常用的权限

s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行;

在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效;修改时,chmod命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效;太空洞是吗,举个例子,Linux修改密码的passwd便是个设置了SUID的程序,普通用户无读写/etc/passwd文件的权限,确可以修改自己的密码,正是采取了这个机制,如下;

[root@node1 tools]# ls -al /usr/bin/passwd-rwsr-xr-x. 1 root root 27856 8月 9 /usr/bin/passwd

通过字符模式设置s权限:,chmod u+s filename,chmod u-s filename,chmod g+s filename,chmod g-s filename,也可以使用绝对模式进行设置.

t:设置粘着位,如果文件设置了t权限则只用属主和root有删除文件的权限,通过chmod +t filename来设置t权限;

[root@node1 myfile]# chmod +t test.txt[root@node1 myfile]# ll总用量 0drwxr-xr-x. 2 root root 24 4月 18 17:58 test-rwxr-xrwt. 1 root root 0 4月 18 17:58 test.txt[root@node1 myfile]# su hadoop[hadoop@node1 myfile]$ ll总用量 0drwxr-xr-x. 2 root root 24 4月 18 17:58 test-rwxr-xrwt. 1 root root 0 4月 18 17:58 test.txt[hadoop@node1 myfile]$ rm -rf test.txtrm: 无法删除"test.txt": 权限不够

i:不可修改权限,例,chattr u+i filename则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了,查看文件是否设置了i权限用lsattr filename;

a:只追加权限,对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加,可以使用chattr +a设置追加权限.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。