Linux基础学习 (三)用户权限相关命令
1、用户和权限的基本概念
1.1 对文件/目录的权限包括
权限 缩写 数字代号
读 r 4
写 w 2
执行 x 1
1.2 为了方便用户管理,提出了组的概念,相同权限的用户添加到组中,给组分配权限(简化对用户权限的设置)
1.3 ls -l 扩展(以列表的方式查看文件详细信息)
总用量 2096
ab c d e f g h i j
-rw-rw-r-- 1 xiahuale xiahuale 1089 1月 1 00:37 333.txt
-rw-rw-r-- 1 xiahuale xiahuale 2126295 1月 6 15:30 dir.txt
drwxrwxr-x 4 xiahuale xiahuale 4096 1月 1 00:02 eee
-rw-rw-r-- 1 xiahuale xiahuale 12 1月 1 00:38 hw.txt
a.如果是文件,第一列显示-,如果是目录,第一列显示d
后面每三个字符一组,r表示可读,w表示可写,x表示可执行,权限被分为三组,
b.第一组权限,文件或目录的拥有者的权限,对应第一个xiahuale
c.第二组权限,用户组的权限(这里用户组与用户名相同),对应第二个xiahuale
d.第三组权限,其他用户的权限
e.一列数字,叫硬连接数,就是有多少种方式,可以访问到当前目录/文件(可理解为用tree查看有多少条路到达)。
例如 某个目录是2,绝对路径可以到达,在该目录下 cd .可以到达当前目录
某个目录是3,该目录下还有一个目录,在该子目录下用cd ..可以到达
某个目录是4,则目录下有2个子目录,一次类推
f.拥有者名称
g.组名称
h.大小
i.时间
j.名称
1.4 chmod 可以修改用户/组 对 文件/目录 的权限
命令格式 chmod +/-rwx 文件名/目录名 (+增加权限,-减少权限,rwx可以任意组合)
文件 chmod -rw 111.txt 减去读写权限,某些文件加上可执行权限,是可以执行的(例如01.py文件)
目录 aaa 去掉可执行权限,cd aaa 不能进入该目录
去掉可读权限,可以进入该目录,不能查看目录下内容
去掉可写权限,不能修改目录下的内容
1.5 超级用户
Linux系统中root帐号通常用于系统的维护和管理,对系统所有资源具有所有访问权限,不推荐直接用root,防止误删重要资源
系统安装过程会自动创建一个用户帐号,称为标准用户,当标准用户想要执行一些系统维护管理相关命令的时候
sudo
su是substitute user的缩写,表示 使用另一个用户的身份
sudo命令用来以其他身份执行命令,预设的身份为root
使用sudo时,必须先输入密码,之后有5分钟的有效期限,过期还得输入密码
若未经授权的用户企图使用sudo,会发警告邮件给管理员
2、组管理
创建组/删除组的终端命令都需要通过sudo执行
groupadd 组名 添加组
groupdel 组名 删除组
cat /etc/group 确认组信息
chgrp [-R] 组名 文件/目录名 修改文件/目录的所属组
(大写R可以递归修改目录下所有文件/目录的所属组)
3、用户管理
提示:创建/删除/修改其他用户密码的命令都需要通过sudo执行
3.1 创建用户/设置密码/删除用户
useradd -m -g 组 用户名 新建用户,-m自动建立家目录 -g指定用户主组,默认建立与用户名同名的组
passwd 用户名 设置密码,普通用户直接用passwd可以修改自己的密码
userdel -r 用户名 删除用户,-r选项会自动删除用户家目录
cat /etc/passwd|grep 用户名 新建用户后,用户信息会保存在/etc/passwd文件中
3.2 查看用户信息
1) id 用户名 查看用户UID和GID信息(只输入id,查看当前用户的信息)
who 查看当前所有登录的用户列表
whoami 显示当前登录用户的账户名
2) passwd文件解读 存放的是用户信息,由6个分号组长的7个信息,分别是
lisi:x:1001:1001::/home/lisi:
1.用户名
2.密码(x表示加密的密码)
3.UID(用户标识)
4.GID(主组标识)
5.用户全名或本地帐号
6.家目录
7.登录使用的Shell 登录之后使用的终端命令,ubuntu默认是dash(一款软件名)
3) cat -n /etc/group|grep xiahuale 查看当前用户的组信息(用户名在后面的是附加组)
5 adm:x:4:syslog,xiahuale 有管理员权限
18 cdrom:x:24:xiahuale 可以访问光驱
21 sudo:x:27:xiahuale 可以使用sudo身份
23 dip:x:30:xiahuale
35 plugdev:x:46:xiahuale
52 lpadmin:x:113:xiahuale
67 xiahuale:x:1000:
68 sambashare:x:128:xiahuale
4) usermod 可以用来设置用户的 主组/附加组 和登录Shell命令
主组:通常在新建用户时指定,在etc/group中第4列GID对应的组
附加组:在etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限
提示:设置用户附加组后,需要重新登录才能生效!
usermod -G sudu 用户名 给用户添加sudo权限,新建用户是没有sudo权限的
usermod -g 组 用户名 修改用户的主组
usermod -G 组 用户名 修改用户的附加组
usermod -s /bin/bash 修改用户登录Shell,bash是Shell名称
说明:所谓Shell,就是可以输入终端命令的窗口,是一个软件,
windows连接ubutun使用dash有bug,很多按键是乱码,可以将其默认登录Shell修改为bash
5) which (重要)
/etc/passwd 保存用户信息的文本文件
/usr/bin/passwd 用户修改用户密码的可执行程序
which命令可以查看执行命令保存在系统中所在的位置,例如:
which ls #输出 /bin/ls
which useradd #输出 /usr/sbin/useradd
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 application
3.3 切换用户
使用场景:工作中使用某些命令,当前用户权限不够,用该命令切换有权限的用户,然后exit可以返回上一个登录用户
su - 用户名 切换用户到用户家目录,-可以切换到用户家目录,否则保持位置不变
su 切换到root用户(不推荐),需要给root用户设置个初始密码
exit 退出当前登录账户
4、修改文件权限
对应ls -l时显示的文件列表
-rw-rw-r-- 1 xiahuale xiahuale 1089 1月 1 00:37 333.txt
-rw-rw-r-- 1 xiahuale xiahuale 2126295 1月 6 15:30 dir.txt
chown 用户名 文件名|目录名 修改拥有者,第3列
chgrp -R 组名 文件名|目录名 递归修改组,第4列
chmod +/-rwx 文件名|目录名 直接修改 文件|目录的 读|写|执行权限,但是不能精确到 拥有者/组/其他
chmod -R 755 文件名|目录名 chmod在设置权限时,可以简单地使用三个数字分别对应 拥有者/组/其他用户 的权限
读、写、执行权限的数字表示
r 4 可读权限
w 2 可写权限
x 1 可执行权限
组合结果为
4 2 1 7 rwx
4 2 0 6 rw-
4 0 1 5 r-w
4 0 0 4 r--
0 2 1 3 -wx
0 2 0 2 -w-
0 0 1 1 --x
0 0 0 0 ---
常见数字组合 (u表示拥有者 g表示组 o表示其他)
777 ===> u=rwx, g=rwx, o=rwx 放开全部权限
755 ===> u=rwx, g=r-x, o=r-x 放开可读、可执行(可执行文件)
644 ===> u=rw-, g=r--, o=r-- 放开只读权限(文本文件)
补充:用su命令直接切换到root用户时,需要输入root密码
如果没设置过,需要给root设置一个密码
输入新设置的密码,切换root用户成功
还没有评论,来说两句吧...