Linux 用户权限

用户和权限

用户管理包括用户与组管理
对文件/目录的权限包括:

1
2
3
读    r  4  
写 w 2
执行 x 1

用ls -l 可以以列表的形式查看文件的详细信息
第一列是 - 表明是文件, d 则表示目录
后面的依次是 拥有者权限,组权限,其他用户权限
再后面是硬链接数 拥有者,组,大小,时间,名称

硬链接数含义: 通俗的讲就是有多少种方式可以访问到当前目录/文件
注:要想在终端对文件进行操作,必须有可执行权限

为了方便用户管理,提出组的概念,在实际应用中可以预先对组设置好权限,然后将不同的用户添加到对应的组中,从而不用依次为每个用户设置权限

chmod 修改文件 拥有者和组 权限

chmod可以修改用户/相对文件/目录的权限
chmod +/-rwx 文件名|目录名
chmod [options] mode file...

-R: 改变目录及其所有子目录的文件的权限
-v :详细说明权限的变化

关于超级用户

  • Linux 系统中的root 帐号通常用于系统的维护和管理,对操作系统的所有资源具有访问权限
  • Linux系统在安装过程中,系统会自动创建一个用户帐号,而这个默认的用户就成为“标准用户”
  • su 是substitute user缩写,表示使用另一个用户的身份
  • sudo命令用来以其他身份执行命令,预设的身份为root
  • 用户使用sudo时,必须先输入密码,之后会有5分钟的有效期,超过期限必须重新输入密码

组管理终端命令

Tips:创建组/删除组的终端命令都需要通过 sudo 执行,组信息保存在/etc/group文件中
添加组: groupadd group_name
删除组: groupdel group_name
确认组信息: cat/etc/group
递归修改文件/目录的所属组: chgrp -R group_name 文件/目录名

创建用户/设置密码/删除用户

添加新用户: useradd -m -g 组名 用户名

  • -m 自动建立用户家目录,如果忘了添加-m从而无法在home目录下看到新用户,可以删除用户重新创建
  • -g 指定用户所在组,否则创建一个同名的组

设置用户密码: passwd 用户名

  • 如果是普通用户,直接用passwd可以修改自己的账户密码

删除用户: userdel -r 用户名

  • -r 会自动删除用户家目录

查看用户信息

id 用户名 : 查看用户UID 和 GID信息
who: 查看当前所有登录的用户列表
whoami: 查看当前登录用户的账号名

passwd

/etc/passwd 文件存放的是用户的信息,由6个分号组成的7个信息,分别是:

  • 用户名;密码(x,表示加密的密码);UID;GID;用户全名或本地账号;家目录;登录使用的Shell,就是登录之后,使用的终端命令
    例:liuyuqiang0:x:1000:1000:liuyuqiang0:/home/liuyuqiang0:/bin/bash
    • passwd 可以修改当前用户的登录密码,更新用户的身份认证令牌.
    • 在超级管理员权限下可以修改任何用户的密码,命令格式为passwd +要修改的用户的名称
      • -d:删除密码,仅有系统管理者才能使用;
      • -f:强制执行;
      • -k:设置只有在密码过期失效后,方能更新;
      • -l:锁住密码
      • -s:列出密码的相关信息,仅有系统管理者才能使用;
      • -u:解开已上锁的帐号

usermod

usermod可以用来设置用户的主组/附加组和登录Shell
usermod -g 组 用户名 修改用户的主组

  • 主组:通常在新建用户时指定,在etc/passwd 的第四列GID对应的组

usermod -G 组 用户名 //修改用户的附加组

  • 附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限,需重新登录有效

usermod -s /bin/bash 用户名

  • 修改用户登录Shell

which

/etc/passwd 是用于保存用户信息的文件
/usr/bin/passwd 是用于修改用户密码的程序
which命令可以查看执行命令所在的位置

关于bin和sbin

  • 在Linux 中,绝大多数可执行文件都是保存在/bin、/sbin、/usr/bin、/usr/sbin
  • /bin(binary)是二进制执行文件目录,主要用于具体应用
  • /sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用户系统管理
  • /usr/bin(user commands for applications)后期安装的一些软件
  • /usr/sbin(super user commands for applications)超级用户的一些管理程序

切换用户

su-用户名: 切换用户,并且切换到用户家目录(不加减号只切换用户)
exit: 退出当前登录账户,返回上层登录用户

修改文件权限

chgrp -R 组名 文件名|目录名

  • 递归修改文件|目录的组

chown 用户名 文件名|目录名`

  • 修改文件|目录的拥有者

chmod -R 755 文件名|目录名

  • 递归修改文件权限