Linux用户与文件的权限管理

用户管理

  Linux是一个可以多用户登录的操作系统,多用户共用一台主机,共享主机资源存放各自文件,甚至不同用户的文件可以放在一个逻辑区,但是由于 Linux 的用户管理和权限机制,不同用户不可以轻易地查看、修改彼此的文件。

查看用户

  who am i//显示用户名,伪终端号,伪终端启动时间
  whoami  //显示用户名
在这里插入图片描述
who命令的其它参数:
在这里插入图片描述

伪终端(/dev/pty/)是成对存在的双向管道:
  伪终端是伪终端master和伪终端slave(两个终端设备文件)这一对字符设备。/dev/ptmx是用于创建一对master、slave的文件。当一个进程打开它时,获得了一个master的文件描述符(file descriptor),同时在/dev/pts下创建了一个slave设备文件。
  master端是更接近用户显示器、键盘的一端,slave端是在虚拟终端上运行的CLI(Command Line Interface,命令行接口)程序。Linux的伪终端驱动程序,会把“master端(如键盘)写入的数据”转发给slave端供程序输入,把“程序写入slave端的数据”转发给master端供(显示器驱动等)读取。

在这里插入图片描述
  终端运行时会创建一个伪终端对如图所示,当用户在终端模拟器中按下键盘按键时,它产生字节流并写入master中,shell便可从slave中读取输入;shell和它的子程序,将输出内容写入slave中,由终端模拟器负责将字符打印到窗口中。
  为了同屏运行多个终端模拟器、并实现远程登录,还真不能让bash直接跨过伪终端这一层。在操作系统的一大思想——虚拟化的指导下,为多个终端模拟器、远程用户分配多个虚拟的终端是有必要的。上图中的shell使用的slave端就是一个虚拟化的终端。master端是模拟用户一端的交互。之所以称为虚拟化的终端,它除了转发数据流外,还要有点终端的样子(里面有个终端驱动,比如输入密码时隐藏字符,比如按下Ctrl+C结束前台进程,这些就是转发数据之外的控制功能),所以称这一虚拟层为伪终端。
  虚拟终端(/dev/tty),你如果在控制台界面下(即字符界面下)那么dev/tty就是映射到dev/tty1-6之间的一个(取决于你当前的控制台号),但是如果你现在是在图形界面(X-windows),那么你会发现现在的/dev/tty映射到的是/dev/pts的伪终端上。比如 你可以输入命令 #tty 那么将显示当前映射终端如:/dev/tty1或者/dev/pts/0等。
  Linux发行版提供7个虚拟终端,1~6号是控制台终端((字符哑)终端),第7个上面跑X-Window,也就是图形化界面。

创建用户

  Linux里root为超级用户,有至高无上的权利,如新建用户,所以黑客入侵时都要把权限提到root权限,如安卓手机了(Linux内核),拥有root权限的用户可以对手机里任何文件增删改查。
  su <user> //可以切换用户 user,注意:Linux系统中输入密码是隐藏不显示的
  su - <user> //命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量
  sudo <cmd> //可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码
  sudo adduser lilei //新建一个用户lilei
  这个命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录。
  ls /home //可以查看目录
在这里插入图片描述
  退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d。

用户组

  每个用户都归属于一个用户组,用户组即一组用户的集合,用户组内的用户它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多。当然一个用户是可以属于多个用户组的,正如你既属于家庭,又属于学校或公司。
  groups shiyanlou //查看当前用户shiyanlou属于哪个用户组
在这里插入图片描述
  其中冒号之前表示用户后面表示该用户所属的用户组。每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组。默认情况下在 sudo 用户组里的可以使用 sudo 命令获得 root 权限。
另一个看用户组的方法:
  cat /etc/group | sort //sort将文件里内容按字典顺序输出
在这里插入图片描述
可以使用参数过滤来显示自己想要的结果:
  cat /etc/group | grep -E "shiyanlou"
在这里插入图片描述
格式说明:
  group_name:password:GID:user_list
  上面的 password 字段为一个 x 并不是说密码就是它,只是表示密码不可见而已。如果用户主用户组,即用户的 GID 等于用户组的 GID,那么最后一个字段 user_list 就是空的。
  默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限。之前我们新建了一个用户lilei:
  su -l lilei //切换到该用户
  sudo ls //会提示不在sudo用户组,加入了sudo组才能运行
  使用 usermod 命令可以为用户添加用户组,但必须要有root权限,可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令。
  su shiyanlou //切回到shiyanlou,并输入其密码
  groups lilei //查看lilei属于哪个组
  sudo usermod -G sudo lilei //将lilei加入sudo组
  groups lilei //再查看
  再切换回 lilei 用户,现在就可以使用 sudo 获取 root 权限了。

删除用户

  sudo deluser lilei --remove-home //一句话

文件权限

  文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。不同的用户处于不同的地位,对文件和目录有不同的访问权限。Linux系统在用户权限、用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。系统中每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
查看文件权限:
  ls //显示当前目录下的文件
  ls -l //显示文件更多信息,包括权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文件类型:
   Linux 里面一切皆文件,正因为这一点才有了设备文件( /dev 目录下有各种设备文件,大都跟具体的硬件设备相关)。socket:网络套接字。pipe 管道,这个东西很重要。软链接文件:链接文件是分为两种的,另一种当然是“硬链接”。

文件权限:
  读权限,可以使用cat查看。写权限,表示你可以编辑和修改某个文件。执行权限,通常指可以运行的二进制程序文件或者脚本文件,如同 Windows 上的 exe 后缀的文件,不过 Linux 上不是通过文件后缀名来区分文件的类型。另外不光文件有权限,目录也有权限,一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件,因为目录也是文件,里面保存着该目录里的文件列表等信息。

变更文件所有者:
  若lilei用户新建了一个文件为iphone6,
  sudo chown shiyanlou iphone6 //将文件所有者变更为shiyanlou
  ll iPhone6 //查看文件信息

修改文件权限

  如果希望自己的文件不希望被别人rwx,则需要对文件权限进行修改(两种方式)
方式一(二进制数字表示):
在这里插入图片描述
  每个文件有三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的),都对应一个 " rwx ",也就是一个 “ 7 ” ,可以把拥有这权限设为7或6,用户组权限为0,其它用户组为0,如chmod 600 iphone6 //修改文件iPhone6文件权限,则其它用户不能读写文件了。

方式二:加减赋值操作
  chmod go-rw iphone6 //与方式一效果相同
  g、o 还有 u 分别表示 group、others 和 user,+ 和 - 分别表示增加和去掉相应的权限。

adduser 和 useradd 的区别

  adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作, adduser 更像是一种程序,需要你输入、确定等一系列操作。优点是方便,执行完adduser后就能增加一个用户。
  useradd、userdel 这类操作更像是一种命令,执行完了就返回,如useradd只是新建一个用户,但密码还得用其他命令添加(passwd username),其他一系列操作都要一条条输命令。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值