Linux学习笔记之基础指令(二)
Linux中文件的权限
权限
文件的权限:所有者、所属组、其他人
rwx-:读/写/执行/没有权限就是-
第一个rwx:文件所有者权限
第二个rwx:文件所属组权限
第三个rwx:文件其他人权限
r:具有读取目录结构列表的权限,可以查看目录下面又哪些文件
w:该权限对目录来说是很大的
- 可以在该目录下新建新的文件和目录
- 可以删除已经存在的文件和目录
- 将已存在的文件和目录重命名
- 移动该目录内下的文件和目录位置
x:是否可以进入该目录
文件默认权限644最大权限666,目录755最大权限777.
修改Linux中的文件权限
chown:修改文件的拥有者;(前提是要又该拥有者)
chown 拥有着 文件/目录
chown -R 递归修改 (子目录也修改)
chgrp:修改文件所属组,前提是有该组
-R 递归修改
chmod:修改拥有者和所属组的权限
- 加减法
- 数字法
groups:查看当前用户所在的组
证明文件的rwx权限的特点
文件的拥有着,即使没有w权限也可以强制写入。所属组和其他人不行。
证明目录的rwx权限的特点
如果一个用户对一个目录没有w权限,是否可以编辑目录中拥有着是自己的文件。
——可以
groupadd:用于创建一个新的工作组
组的默认信息:/etc/login.defs
- -g:指定gid
groupdel:用于删除指定的工作组
groupmod:更改群组识别码或名称
gpasswd
- -a 为组添加用户
- -d 为组删除用户
Linux中默认权限
umask-默认权限
- 022-拿走的权限
- 第一个数字表示特殊权限
- 022=rwxr-xr-x:表示拿走w权限,0表示没有拿走权限
默认创建文件和目录权限,文件会拿走全部x权限,目录不会
临时修改:umask 0000
永久修改:/etc/bashrc(不建议)
umask 000 不拿走任何权限(文件默认拿走x)
umask:查看当前有哪些权限
什么情况下使用?
当两个用户在同一个目录下进行同一个项目工作时,如果默认权限为022,那么一方创建的文件,另一方无法编辑,因此可以将权限调整为002.
特殊权限
SUID SGID SBIT
当s出现在拥有者的x权限位置时,表示拥有着有suid的权限(set uid)
当s出现在所属组的x权限位置时,表示所属组有sgid的权限(set gid)
其他人的x权限位置时,表示其他人有sbit的权限(sticky bit)
SUID:任何用户在执行该文件时,临时获取文件拥有者的权限——只针对文件
SGID:既可以作用于目录,也可以作用于文件
- 作用于文件:和SUID一样
- 作用于目录:继承父级目录—目录会不停的继承(当父级有s权限时,子级目录会继承下去)
SBIT:只有文件的拥有者,才能删除、修改目录下的文件——只针对目录
#chmod +s file//加减法赋权
用户账户管理
- 账户和组名给人看的
- UID和GID给Linux看的
- id:查看当前登入用户的UID和GID
/etc/passwd:记录了Linux上所有的账号
/etc/shadow:记录了账户对应的密码
/etc/group:记录了所有组
root是用户名;
x早期这个部分放的是用户登入密码,现在密码放在了/etc/shadow;
0(第一个)UID0表示系统管理员,1~999保留给系统使用的ID;1000以后给一般使用者
0(第二个)GID0表示系统管理员,同上;
root使用者信息说明;
/root:/用户家目录,用户登入时所在的目录;
/bin/bash用户在登入时,可以使用shell,如果不能使用shell,则会显示/sbin/nologin
root用户名;
经过加密的密码;
最近更改密码的日期,中间时空的说明没改密码;
密码不能更改的天数,0表示随时可以更改;
密码需要重新修改天数:通过修改值,可强制用户修改密码
密码需要变更告警天数:7天内系统向用户发出告警;
(倒数第二个空格)密码到期后,账号还可以使用的时间(天);
(倒数第一个空格)账号失效日期:从1979.1.1累加日期,到事件后,无论密码是否过期,该账号都不能使用
useradd
useradd
- -u:设置UID;
- -g:设置主要组;
- -G:设置要附属组
- -c:设置用户说明
- -d:指定用户家目录
- -s:指定shell
- -e:账户失效日期,格式为:yyyy-mm-dd;
- -f:指定密码是否失效:0表示立刻失效,1表示永不失效
使用useradd后,会默认做一下几个操作:
1 在/etc/passwd下建立相关的资料;
2 在/etc/shasow下写入密码的相关参数;
3 /etc/group中写入和账户名一样的组;
4 在/home/下创建用户的家和目录
id命令:显示用户的uid和gid
passwd
passwd username:所有人都可以通过该命令修改自己的密码
- -l:锁住该账号,在/etc/shadow中密码位置加个!
- -u:解锁;
- -S:显示账号的密码参数;
- -n:后接天数,设置多久可以不修改密码;
- -x:后接天数,设置多久内必须改密码;
- -w:后接天数,设置密码过期前告警天数;
- -i:后接天数,设置密码失效天数
usermod
usermod:可以对用户账户信息进行细微的修改
- -c:账号说明;
- -d:修改家目录;
- -g:修改主要组;
- -G:修改附属组;
- -a:与G一起用,增加附属组;
- -l:修改用户名;
- -u:修改UID;
- -L:冻结账号;
- -U:解冻
change
chage:密码失效是通过此命令来管理的。
参数意思:
-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M 密码保持有效的最大天数。
-W 用户密码到期前,提前收到警告信息的天数。
-E 帐号到期的日期。过了这天,此帐号将不可用。
-d 上一次更改的日期
-I 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l (小写的L)例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
删除用户
userdel
- 要彻底删除一个账号比较麻烦
1 删除/etc/passwd;/etc/shadow文件中的内容;
2 删除/etc/group;/etc/gshadow文件中的内容;
3 删除/home/username;/var/spool/mail/username;
4 删除该用户曾经在Linux中创建的文件;
find搜索,先搜索在使用userdel;
-r 连同家目录一起删除
getfacl和setfacl
acl:针对单一使用者,设置单一文件或目录来进行的rwx的权限修改
getfacl:获取单一使用者,针对单一文件或者目录的权限
setfacl:配置单一使用者,针对单一文件或目录的权限
- -m:配置acl参数
- -x:删除单个文件的acl
- -b:删除acl配置
- -R:递归配置acl参数
setfacl用法:
setfacl -m u:用户名:rwx 文件或目录
setfacl -m g:组名:rwx 文件/目录
setfacl -m m::rwx 修改mask值
隐藏属性ATTR
chattr命令用于设置文件的隐藏权限
- -i:将无法对文件进行修改,若目录设置后则仅能修改子文件而不能新建或者删除
- -a:仅允许补充、追加内容,无法覆盖、删除
charrt [参数] 文件
Linux的软件安装和网络
Linux中软件安装介绍
rpm安装——无法解决依赖关系
yum安装——可以解决依赖关系
用rpm安装软件
常用选项:
- -i:安装软件包
- -q:询问软件包,和-a一起使用
- -e:删除软件包
- -U:把一个已安装好的软件包升级
- -v:验证已经安装的软件包
- -h:显示安装进度条
常见组合:
-ivh:安装
-Uvh:升级
-qa:查询
-e:卸载
用yum安装软件
yum 语法
um [options] [command] [package ...]
options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
command:要进行的操作。
package操作的对象。
yum常用命令
1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install <package_name>
4.仅更新指定的软件命令:yum update <package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove <package_name>
7.查找软件包 命令:yum search
8.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
Yum客户端需编辑配置文件,命令操作如下所示:
[root@localhost ~]# cd /etc/yum.repos.d/ //必须在这个路径下
[root@localhost yum.repos.d]# ls //此路径下事先有配置文件的模板
rhel-source.repo
[root@localhost yum.repos.d]# cp rhel-source.repo rhel6.repo //配置文件必须以.repo结尾
[root@localhost yum.repos.d]# vim rhel6.repo
[rhel-6] //中括号里内容要求唯一,但不要出现特殊字符
name=Red Hat Enterprise Linux 6 //此为描述信息,可以看情况填写
baseurl=file:///media/ //此项为yum软件仓库位置,指向光盘挂载点
enabled=1 //此项为是否开启,1为开启0为不开启
gpgcheck=1 //此项为是否检查签名,1为监测0为不检测
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //签名认证信息的路径