侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

linux  /  管理员 发布于 7年前   181

1.ls -l 命令:

最前面的一位表示文件类型:
d   目录。
l   符号链接(指向另一个文件)。
s   套接字文件。
b   块设备文件。
c   字符设备文件。
p   命名管道文件。
- 普通文件,或者更准确地说,不属于以上几种类型的文件。

后面的连续九位,表示文件的读写权限:
r w x:文件属主权限 这是前面三位
r -  x:同组用户权限 这是中间三位
r -  x:其他用户权限 这是最后三位

2. 新创建文件(夹)的权限

目录:

可以看到,新创建的目录 myshell 的权限是:rwx r-x r-x, 即:

onwer 用户具有 read、write、execute 权限,group 和其他用户具有 read、execute权限。

文件:

可以看到,新创建的文件 myfile 的权限是:rw- r-- r--。

文件在新创建的状态下,不会被赋予执行的权限,这是出于安全性的考虑。

文件权限修改:

# chmod 777 myfile    // 为所有用户赋予了该文件的所有权限。

# chmod a-x myfile    // 回收所有用户的执行权限(注意 a-x,-x 前面没有空格)。

# chmod u+x,go-w myfile // 赋予文件属主执行权限,同时回收其他用户的写权限

3. chmod 命令两种模式:符号模式和绝对模式

符号模式:

# u: 文件属主
# g: 同组用户

# o: 其他用户

# a: 所有用户

+ 增加权限

- 回收权限

如:

chmod a-x myfile   // 剥夺所有用户的文件执行权限

chmod og-w myfile

chmod g+w myfile

chmod u+x myfile

chmod go+x myf

chmod u+x,o-w myfile

绝对模式:

004  可读

002 可写

001 可执行

000 没有权限

chmod 750 myfile

对文件myfile增加权限:

7 = 4 + 2 + 1 (属主可读、写、执行)

5 = 4 + 1 (同组用户可读、执行)

0 = 0 (其他用户没有任何权限)

如果对一个目录执行:

chmod 740 *

表示对该目录下的所有文件赋予740权限,但以后新增的目录,权限仍是默认的 rw-  r-- r--

4. 目录的权限

对目录而言,意味着:

读权限:可以列出该目录中的文件

写权限:可以在该目录中创建或删除文件

执行权限:可以搜索或进入该目录

目录的权限将会覆盖该目录中文件的权限。例如,如果目录 docs 具有如下的权限:

而其中的文件 pay 的权限为:

那么 admin 组的用户将无法编辑该文件,因为它所属的目录不具有这样的权限。

该文件对任何用户都可读,但由于它所在的目录并未给 admin 组的用户赋予执行权限,所以该组的用户都将无法访问该目录,他们将会得到“访问受限”的错误消息。

5.suid 和 guid(了解)

suid 意味着如果某个用户对属于自己的 shell 脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。

如文件 myfile 具有 741 的权限,要对其设置suid,只需在其权限数字前加 4 (guid 是加 2,两个都设置就是 4+2=6),

6. /etc/passwd 文件

该文件中列出了系统合法的用户相关信息。

7. chown 和 chgrp

chown:文件的所有者和管理员能用这一命令改变文件的所有权,改变之后,原来的所有者,就不能回收他的权限了,如果真要回收,必须求助与管理员。

如:

将 myfile 的所有者,从root变更为用户 zhy (zhy 必须是在 /etc/passwd 中合法的)。

chgrp:改变文件所属的组。

如:

将 myfile 所属的组,从 root 改成了 zhy 组。

(

# groups

查看当前登录用户所在的组内所有的成员。

# id

查看当前登录用户的信息

# whoami

查看系统当前是被哪个用户登录的。

# groups zhy

查看zhy用户所在的组,以及组内成员。

用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去。 

8.umask命令

一个用户登录到系统之后,他所创建的文件有一个缺省的权限,这个权限可以由管理员配置,也可以由用户登录之后用 umask 命令自己配置,这种配置在退出该 shell 或使用另外的 umask 命令之前一直有效。

一般来说, umask 命令是在 /etc/profile 文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的 umask ,可以在该文件中加入相应的条目。如果希望永久性地设置自己的 umask 值,那么就把它放在自己 $home 目录下的 .profile或 .bash_profile 文件中。

umask 值与权位:

通过:

# umask

命令查看当前 umask 值(后三位):

可以看到,当前 umaks 值为022,通过上面的表,就可以知道,umask 对应的文件权限是 644,目录权限是 755。

如果没有上面的表,还有另外一种计算方法:

777:  rwx rwx rwx

022: --- -w- -w-

取上面两行中没有匹配的位就是目录的权限:

rwx r-x r-x

换成值就是:755(目录权限)

再将上面算出的结果(rwx r-x r-x)中为 x 的位换成 - ,就是文件的权限:

rw- r-- r--

换成值就是:644(文件权限)

如果希望改变系统的 umask 值,可以这样:

# umask 007

例:

可以看到,文件的权限确实被改变了。

9. 符号链接

是一个指向文件的指针,在我理解就是 window 下的快捷方式:

.profile 就是 /usr/local/menus/sales.profile 的快捷方式了,这样很方便,比如我们有多个用户,比如 50 个,可以为他们分别创建一个.profile 文件,都指向这同一个 sales.profile 文件,以后我们修改一个 sales.profile 就可以了,不用对每个用户的 .profile 做修改。

创建符号链接的命令格式:

# ln [-s] source_path target_path

source_path 是要指向的文件

target_path 就是指针(快捷方式)

例:

# ln -s /usr/opt/monitor/regstar/reg.log /var/adm/logs/monitor.log

在新安装的系统上,通常要进行这样的操作,在/var 目录中创建一个指向/tmp目录的链接,因为有些应用程序认为存在 /var/tmp 目录(然而它实际上并不存在),有些应用程序在该目录中保存一些临时文件。为了使所有的临时文件都放在一个地方,可以使用 ln 命令在 /var目录下建立一个指向 /tmp 目录的链接:

# ln -s /tmp /var/tmp

以后,如果有应用程序试图将一些临时文件放在 /var/tmp 下,实际上它是被存放在了 /tmp 目录下了,因为 /var/tmp 只是一个符号链接而已。


  • 上一条:
    Linux命令(shell)从入门到精通 学习笔记之2 使用find和xargs
    下一条:
    远程连接服务器的方法for linux
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客