学习内容来自实验楼、莫烦python、CSDN
一、Linux 用户管理
1. 查看用户
who am i 或者who mom likes
who -a:打印所有能打印的 who -d :打印死掉的进程 who -m:同who am i; who mom likes
who -q:打印当前用户数及用户名 who -u:打印当前用户信息 who -r: 打印当前运行等级
2. 创建用户
root
账户拥有整个系统至高无上的权利
su,su- 与 sudo:su <user>
可以切换到用户user;do <cmd>
可以以特权级别运行cmd命令;su - <user>
命令也是切换用户
新建一个叫 lilei 的用户:sudo adduser lilei ,同时也为新用户创建 home 目录。
切换登录用户: sudo -l lilei
退出当前用户跟退出终端一样可以使用 exit
命令或者使用快捷键 Ctrl+d
3.用户组
在 Linux 里面如何知道自己属于哪些用户组呢?
1.使用groups命令
group shiyanlou==>shiyanlou(用户名):shiyanlou(所属组)
2. 查看/etc/group文件
cat /etc/group |sort (表示输出按字典序排序)
cat /etc/group |grep -E "shiyanlou"==>shiyanlou:x:5000
内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User),每个用户组一条记录, 'x'表示不可见
将其它用户加入 sudo 用户组:su -l lilei
使用 usermod
命令可以为用户添加用户组:
sudo usermod -G sudo lilei
groups lilei
==>lilei:lilei sudo
二、Linux 文件权限
1、ls -l:查看文件权限
Linux 里面一切皆文件
一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件。
- 链接数:链接到该文件所在的 inode 结点的文件名数目
- 文件大小:以 inode 结点大小为单位来表示的文件大小
显示除了 '.'(当前目录),'..' 上一级目录之外的所有包含隐藏文件: ls -a
查看某一个目录的完整属性,而不是显示目录里面的文件属性:ls -dl <目录名>
显示所有文件大小,并以普通人类能看懂的方式呈现:ls -AsSh
例子如下:
$ ls -l total 16 ----rw-r-- 1 morvan morvan 34 Oct 12 09:51 t1.py -rw----r-- 1 morvan morvan 80 Oct 12 09:57 t2.py -rw-rw-r-- 1 morvan morvan 12 Oct 12 09:56 t3 -rwxrw-r-- 1 morvan morvan 55 Oct 13 17:28 t.py
在这里, 像-rw-rw-r--
这种, 就是权限的说明. 细节展示在下面的图中. 在下图中, 这串字符得拆成4个部分,
Type
: 很多种 (最常见的是-
为文件,d
为文件夹, 其他的还有l
,n
… 这种东西, 真正自己遇到了, 网上再搜就好, 一次性说太多记不住的).User
: 后面跟着的三个空是使用 User 的身份能对这个做什么处理 (r
能读;w
能写;x
能执行;-
不能完成某个操作).Group
: 一个 Group 里可能有一个或多个 user, 这些权限的样式和 User 一样.Others
: 除了 User 和 Group 以外人的权限.
如果对 User, group, others 这几个没什么概念的话, 这里补充一下. User 一般就是指你, 这个正在使用电脑的人. Group 是一个 User 的集合, 最开始创建新 User 的时候, 他也为这个 User 创建了一个和 User 一样名字的 Group, 这个新 Group 里只有这个 User. 一般来说, 像一个企业部门的电脑, 都可以放在一个 Group 里, 分享了一些共享文件和权限. Others 就是除了上面提到的 User 和 Group 以外的人.
好了, 有了这些理解, 我们拿上面的 t1.py
来举例. 我们可以将 ----rw-r--
拆成 -
(这是文件), ---
(这个 user 没有任何权限), rw-
(这个 Group 里可以读,写), r--
(其他人只能读).
如果我双击这个 t1.py
上面就弹出这个说我们权限的窗口.
2.变更文件所有者
建立一个文件:$sudo chown shiyanlou ii;将属于lilei 的文件改成属于shiyanlou
3.修改文件权限
每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 "rwx",也就是一个 '7'
由以上数字权限可以推出”r=4, w=2 , x=1”的用户拥有可度可写可执行的最高权限。
r: 表示读权限, w:表示写权限,x:表示可执行权限
- 度权限(r)
- 权限二进制100, 转为十进制4;
- 写权限(w)
- 权限二进制010, 转为十进制2;
- 执行权限(x)
- 权限二进制001, 转为十进制1;
由以上可推出如下:
若要 rwx 则 4+2+1=7
若要 rw- 则 4+2+0=6
若要 r-w 则 4+0+1=5
若要 r— 则 4+0+0=4
若要 -wx 则 0+2+1=3
若要 -w- 则 0+2+0=2
若要 - -x 则 0+0+1=1
若要 - - - 则 0+0+0=0
注意:“ - ”表示没权限
chmod 700 t1.py; 现在除拥有者外,其他人对t1.py这个文件都没有权限了。
(2)加减赋值操作
g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。
通常的修改形式是
$ chmod [谁][怎么修改] [哪个文件]
举个最简单的例子, 现在的 t1.py
是 ----rw-r--
, 如果我们想让你(user)有读的能力. 下面这样改就行了.
$ chmod u+r t1.py $ ls -l -r--rw-r-- 1 kumata kumata 34 Apr 12 09:51 t1.py
这里的 u+r
很形象, User + read, 给 t1.py 这个修改. 所以我们的修改形式就能总结出下面这样.
[谁]
u
: 对于 User 修改g
: 对于 Group 修改o
: 对于 Others 修改a
: (all) 对于所有人修改
[怎么修改]
+
,-
,=
: 作用的形式, 加上, 减掉, 等于某些权限r
,w
,x
或者多个权限一起, 比如rx
[哪个文件]
- 施加操作的文件, 可以为多个
再举几个例, 巩固一下.
-rw----r-- 1 kumata kumata 80 Apr 12 09:57 t2.py -rw-rw-r-- 1 kumata kumata 12 Apr 12 09:56 t3 -rwxrw-r-- 1 kumata kumata 55 Apr 13 17:28 t.py $ chmod u-r t2.py $ ls -l t2.py --w----r-- 1 kumata kumata 80 Apr 12 09:57 t2.py $ chmod g+x-w t3 $ ls -l t3 --w-r-xr-- 1 kumata kumata 12 Apr 12 09:56 t3