Linux用户和权限管理

Linux用户和权限管理

文章目录

    • Linux用户和权限管理
  • 创建新用户并赋予root权限
    • 创建新用户
    • 赋予root权限
  • 用户权限
    • 创建用户
    • 删除用户
    • 设置密码
    • 修改用户信息
    • 帐户信息
  • 文件权限
    • 修改文件权限
      • 文字设定法
      • 数字设定法
    • 修改文件所属
    • 修改文件所属组
  • 组权限
    • 新增组
    • 删除组
    • 修改组名
  • 用户管理
    • 已登录的用户信息
    • 按终端号踢出用户
    • 查看用户登录记录
    • 显示当前会话的用户的名称
    • 查看单个用户信息(包含uid,group)
  • 用户、组、文件权限 常用命令概括

创建新用户并赋予root权限

创建新用户

//创建test用户,指定工作目录为/usr/test, 指定用户所属的群组root,
useradd -d /usr/test -g root test
//设置密码
passwd test

赋予root权限

修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0,
例如tommy❌0:33:tommy:/data/webroot:/bin/bash

用户权限

创建用户

//默认在/home 目录创建一个和用户名相同的文件夹作为新建用户的主目录
useradd test

删除用户

// 删除用户 user01, 保留用户主目录
userdel test
// 删除用户 user02, 并同时删除用户主目录
userdel -r test

设置密码

passwd test

锁定帐户,使其它不能登陆

passwd -l test

修改用户信息

usermod命令

参数:
    -c    comment, 设置帐户注释
    -d    home_dir, 设置用户主目录
    -e    expiredate, 设置帐户过期日期
    -g    group, 强制修改用户的新主组
    -G    groups, 修改用户新的附加组列表
    -a    append group, 将用户追加至上边 -G 中提到的附加组中, 并不从其它组中删除此用户
    -u    uid, 修改账户的用户ID
    -l    login, 设置用户的登录名称
    -s    shell, 修改用户登录后使用的 shell
    -L    lock, 锁定用户帐户(等同于 passwd -l 命令锁定账户)
    -U    unlock, 解锁用户帐户(等同于 passwd -u 命令解账户)

例子:
    usermod -g group01 user01   // 把用户 user01 的主组修改为 group01 组
    usermod -u 9999 user01      // 把用户 user01 的 ID 修改为 9999
    usermod -l u1 user01        // 把用户 user01 的名称修改为 u1
    
    usermod -aG sudo user01     // 把 组sudo 添加到用户 user01 的附加组列表, 使该用户拥有执行 sudo 命令的权限

帐户信息

账户信息保存以/etc/passwd文件里,格式如下

Username : Password : User ID : Group ID : Comment : Home Diretory : Login Command
    用户名    : 密码      : 用户ID   : 组ID     : 用户注解 : 主目录         : 登录后执行的命令

其中 密码字段 只显示一个特殊字符“x”或“*”, 加密后的密码存放在 /etc/shadow 文件中, 只有超级用户才能访问。

查看用户名: cat /etc/shadow
查看组: cat /etc/group

文件权限

修改文件权限

chmod命令
ls -l或者ll如下:

drwxr-xr-x  6 root     root     4096 Jan 12 11:18 soft
-rwxrwxrwx  1 root     root      433 Jan 11 11:20 startAll.sh

共10位。横线“-”表示是文件,“d”表示是目录或文件夹。后面3位一组,共9个字符。每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
权限字符用横线"-"代表空许可,r代表只读,w代表写,x代表可执行。
如上面代码所示每个字母位置代表2进制的数字:
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
权限设置2种形式:
1.包含字母和操作符表达式的文字设定法;
2.包含数字的数字设定法。
推荐使用第一种,因为表示比较清楚,第二种对老手来说较方便。
权限设置对应:文件属主u,与文件属主同组用户g,其他用户o删除执行权限顺序设置。

文字设定法

语法:chmod [who] [+ | - | =] [mode] 文件名
chmod是命令名
who值有:文件属主u,与文件属主同组用户g,其他用户o,所以用户a
操作:+增加权限,-删除权限,=表示只有指定的权限
mode值解释:r :读权限。w :写权限。 x :执行权限。- :删除权限。
 
比如

  1. 增加test.sh文件属主只读权限
chmod u+r test.sh
  1. 删除test.sh文件属主(所有者)只读权限
chmod u-r test.sh
  1. test.sh文件属主只有只读权限
chmod u=r test.sh

**其它组权限设置如上一样,只是把“u”换成“g”或“o”或"a"。可以多组设置,中间用逗号隔开如下:chmod u+r,g+x test.sh

数字设定法

语法:chmod [mode] 文件名
r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
其顺序是(u)(g)(o)。我们多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。
例如想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。
数字与字符对应关系如下:
r=4,w=2,x=1
若要rwx属性则4+2+1=7
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
例如

chmod 751 file   

说明:
给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

修改文件所属

chown命令
语法:chown [选项]… [所有者][:[组]] 文件…
功能:通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

  1. 改变拥有者和群组
chown ssh:ssh log.log
  1. 只改变拥有者
chown chenyuan log.log
  1. 只改变群组
chown :ssh log.log

修改文件所属组

chgrp命令

chgrp users aa.txt         // 把文件 aa.txt 的所在组修改为 组users
chgrp -R users bbDir       // 递归修改 目录bbDir 的所在组为 组users

chmod与chown区别和联系。
chmod:ch是change缩写,mod是权限,作用是重新设定不同的访问权限
chown:ch同上,own是拥有者,作用是更改某个文件或目录的所有者
chgrp:ch同上,grp是group缩写,作用是更改某个文件或目录的用户组。

组权限

新增组

 groupadd test01            // 新建名称为 test的组
 groupadd -g 1001 test// 新建名称为test2 的组,  并给指定组的 ID 为 1001

删除组

groupdel test01//删除test01组

修改组名

groupmod -n test01 test02 //将组test01名修改为test02

用户管理

已登录的用户信息

who命令

who         // 显示当前所有已登录的用户
who -q      // 显示当前所有已登录的账号名称和总人数
who am i    // 显示当前会话的用户的信息
who -m      // 显示当前会话的用户的信息
who -uTH    // 显示当前所有已登录的用户信息(包括 闲置时间, 用户状态, 各列标题)

按终端号踢出用户

//显示已登陆用户
who

结果

[root@hlcserver-0002 ~]# who
root     tty1         2018-12-28 11:59
test   pts/0        2018-01-17 13:22 (115.213.76.204)

踢出nginxx用户

pkill -kill -t pts/0

查看用户登录记录

查看登录成功的用户记录

last root  //查看root用户所有的登录成功记录
last  //默认查看当前用户的所有登录成功记录

查看登录不成功的用户记录

lastb root  //查看root用户所有的登录失败记录
lastb //默认查看当前用户的所有登录失败记录

显示当前会话的用户的名称

whoami命令

查看单个用户信息(包含uid,group)

finger nginxx //finger需要安装,yum install -y finger

结果如下

[root@hlcserver-0002 ~]# finger nginxx
Login: nginxx                           Name: 
Directory: /home/nginxx                 Shell: /bin/bash
On since Wed Jan 16 13:22 (CST) on pts/0 from 115.213.76.204
   46 minutes 42 seconds idle
On since Wed Jan 16 14:05 (CST) on pts/1 from 115.213.76.204
   2 seconds idle
No mail.
No Plan.
id nginxx

结果如下

[root@hlcserver-0002 ~]# id nginxx
uid=0(root) gid=0(root) groups=0(root)

用户、组、文件权限 常用命令概括

类型 举例
用户 who, whoami, su, useradd, userdel, passwd, usermod, /etc/passwd
groupadd, groupdel, groupmod, /etc/group
文件 chmod, chown, chgrp
其他 sudo, exit

你可能感兴趣的:(阿里云,linux)