root用户被误设置成nologin_Linux 用户&权限 学习笔记

基础知识

在同一台服务器上部署多个程序,需要做好权限管理,确保每个程序仅能访问自己需要的目录和文件。Linux的用户权限只需记住3个概念:权限、组和用户。

多个用户可能会使用相同的权限,因此有组的概念。创建用户时需要指定属于哪个组,如果没有指定,系统会自动创建一个与用户名同名的组。

查看

[root@localhost ~]#vim /etc/grouproot:x:0:bin:x:1:bin,daemondaemon:x:2:bin,daemon...

每行是一个组,冒号分隔开的依次是组名、密码、ID和组内用户。

密码x仅仅是一个标识,真正的密码存在/etc/gshadow文件中。组内用户如果为初始用户则不会显示,仅展示附加的用户。

新增

不指定id

groupadd groupName

指定id

groupadd -g 1000 groupName

修改

修改组名

groupmod -n newName groupName

添加用户

gpasswd -a userName groupName

删除用户

gpasswd -d userName groupName

删除

groupdel groupName

用户

用户分3种:root、系统用户和一般用户。UID值为0的是root用户,作为超级用户,拥有操作系统一切权限,谨慎使用。系统用户(又称“伪用户”)UID值为1-499,可以配置和普通用户一样的权限,但不能登录系统,给各种服务(如nginx/php/node等)一般就可以设置成系统用户。其余的UID值为500-60000的就是普通用户了,可以正常登录,操作自己有权限的目录。

查看

[root@localhost ~]#vim /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin...

每行是一个用户,冒号分隔开的依次是登录名、密码、ID、组ID、注释、home目录和用户的默认shell。

跟组的密码一样,此处密码x仅仅是一个标识,真正的密码存在/etc/shadow文件中。Home目录是登录进去的默认目录。Shell设置成/usr/sbin/nologin即配置用户不能登录。

新增

指定组(-g)

useradd -g groupName userName

指定id(-u)

useradd -g groupName -u 1000 userName

指定路径(-d)

useradd -g groupName -d /home userName

指定shell不能登录(-s)

useradd -g groupName -s /sbin/nologin userName

加注释(-c)

useradd -g groupName -c Comment userName

修改

修改uid

usermod -u 1001 userName

修改组

usermod -g groupName userName

修改目录

usermod -d /home userName

修改密码

usermod -p password userName

删除

userdel userName

权限

在任意目录下运行“ll”命令,即可查看该目录下的文件的权限:

[root@localhost ~]#ll---------- 1 root root    0 Mar 01 10:00 000---x------ 1 root root    0 Mar 01 10:00 100--w------- 1 root root    0 Mar 01 10:00 200-r-------- 1 root root    0 Mar 01 10:00 400-r-x------ 1 root root    0 Mar 01 10:00 500-rw------- 1 root root    0 Mar 01 10:00 600-rwx------ 1 root root    0 Mar 01 10:00 700d--------- 2 root root 4096 Mar 01 10:00 d000dr-------- 2 root root 4096 Mar 01 10:00 d400drw------- 2 root root 4096 Mar 01 10:00 d600drwx------ 2 root root 4096 Mar 01 10:00 d700...

每行最前面的10位即文件权限。第一位字符表示文件类型,可以是d(目录)、b(块设备)、s(socket)、“-”(普通文件)等。2-4位表示属主用户权限,5-7位表示属组成员权限,8-10位表示其他用户权限。权限分为读(r)、写(w)和执行(x),如可读写可执行就是rwx,只读就是r--。

Linux的权限控制使用位计算来实现,储存和修改时需要用到实际的二进制位数据:4(只读),2(可写),1(可执行)。按照属主用户、组成员、其他用户的顺序,用三个数字来表示权限,比如所有用户可读可写可执行的权限是777,组成员和其他用户只读的权限是744等。如果不了解位计算权限控制的实现原理,可以参考我的另一篇博客《位计算实现权限控制》。

修改文件归属

修改用户

chown userName filename

修改文件夹及内部文件

chown -R userName filename

修改组

chgrp groupName filename

同时修改用户和组

chown userName:groupName filename

修改文件权限

修改文件

chmod 777 filename

修改文件夹及内部文件

chmod -R 777 filename

总结

合理配置权限是运维安全的基础之一。建议每个程序单独使用一个系统用户,谨慎使用root用户。

18d5b19533f2c67cfe5c17afd0c58bdf.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值