linux 权限和权限的设置

2024-05-09 10:52
文章标签 权限 linux 设置

本文主要是介绍linux 权限和权限的设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Linux中,文件和目录的权限是一个重要的安全特性。这些权限决定了哪些用户可以读取、写入或执行某个文件或目录。以下是关于Linux权限和如何设置它们的基本信息。

权限类型

Linux中有三种基本的权限类型:

  1. 读取(r):允许用户读取文件的内容或列出目录的内容。
  2. 写入(w):允许用户修改文件的内容或在目录中创建和删除文件。
  3. 执行(x):允许用户执行文件(如果它是一个程序或脚本)或进入目录(即cd到该目录)。

权限设置

每个文件和目录都与三个用户组关联:文件的所有者(owner)、文件的组(group)和其他用户(others)。每个组都可以有上述三种权限中的任何一种或多种。

查看权限

你可以使用ls -l命令查看文件和目录的权限。输出中的第一个字符表示文件类型(例如,-表示普通文件,d表示目录),接下来的九个字符是三个字符为一组的权限码,分别对应文件所有者、文件和组其他用户。

例如:-rw-r--r-- 表示这是一个普通文件,所有者有读写权限,而组和其他用户只有读权限。

设置权限

你可以使用chmod命令来更改文件或目录的权限。有两种主要的方法来指定权限:

  1. 符号模式:使用u(所有者)、g(组)和o(其他)来指定要更改的组,然后使用+-=来添加、删除或设置权限。例如,chmod u+x file.txt会给文件的所有者添加执行权限。
  2. 八进制模式:使用数字来表示权限。每个权限类型(读、写、执行)都有一个对应的数字值(读=4,写=2,执行=1)。将这些值相加,然后将结果用作chmod命令的参数。例如,chmod 755 directory/会给目录的所有者设置读/写/执行权限,给组和其他用户设置读/执行权限。

设置所有者和组

你还可以使用chown命令更改文件或目录的所有者,使用chgrp命令更改其组。例如,chown newuser file.txt会将file.txt的所有者更改为newuser

粘滞位、设置位和执行位

除了上述的基本权限外,Linux还提供了其他几种特殊的权限和标志,如:

  • 粘滞位(Sticky Bit):在目录上设置时,只有文件的所有者或root用户才能删除或重命名该文件。这通常用于/tmp目录,以防止其他用户删除或重命名其他用户的临时文件。
  • 设置位(Set UID/GID):当在可执行文件上设置时,该文件在运行时将使用文件所有者的用户ID(对于Set UID)或组ID(对于Set GID)而不是执行该文件的用户的ID。这允许某些程序以特定的用户或组身份运行,而不管是谁启动了它们。
  • 执行位(Execute Bit on Directories):允许用户进入目录。这是目录的一个基本权限,但在某些上下文中(如粘滞位)可能具有特殊意义。

注意:在更改文件或目录的权限时,请务必谨慎行事,以确保不会意外地降低系统的安全性或破坏重要的数据。

权限修改举例

原始权限 转换为数字数字表示法
rwxrwxr-x(421)(421)(401)775
rwxr-xr-x(421)(401)(401)755
chmod 664 要修改权限的文件名

 

这篇关于linux 权限和权限的设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973213

相关文章

Linux命令学习之二

每日一结 ​               命令置换:是将一个命令的输出作为另一个命令的参数,命令格式如下: commond1 `command2` 其中,命令command2的输出将作为命令command1的参数,需要注意的是, 命令置换的单引号为ESC键下方的 ` 其意思就是说,先运行单引号内的命令,再将其命令作为

Linux命令学习之一

每日一结                                                                                        注:当用户不确定一个软件包的类型时, 可使用file命令查看文件类型

Linux文件I/O之一

每日一结(标准I/O)   一  库    本质 :一组实现函数接口 [printf,scanf,strcpy,strlen]   使用标准库好处:屏蔽底层细节,向上层提供统一的接口,提高程序的可移植性   windows 库 : *.dll  linux   库 : *.so    二 系统调用接口    本

Linux网络编程之五

每日一结 组播: ​ 网络地址: 一些特殊的组播地址:   一 组播包收和发 1.发送方 (1)创建用户数据报套接字 (2)填充组播地址和端口  (3)发送数据到组播地址 2.接收方  (1)创建用户数据报套接字 (2)加入组播组  struct ip_mreq mreq; mreq.imr_m

Linux网络编程之四

每日一结 一 UDP并发  核心思想:父进程接收到客户端的数据,就创建子进程,在子进程中创建一个新的套接字  和客户端交互  int do_client(接受客户端地址,数据,数据长度) { 1.创建用户数据报套接字  2.自动分配地址  3.处理数据[例如:输出数据内容] 4.通过新创建的套接字将数据回发给客户端  w

Linux网络编程之三

每日一结 Tftp服务器的实现: server.c ​       client.c     代码分析如下:     一 Linux IO模型  (1)阻塞IO  (2)非阻塞IO  非阻塞IO

Linux网络编程之二

每日一结   一 TCP 函数接口  int listen(int sockfd, int backlog); 功能:设置流式套接字为监听模式  参数: @sockfd    流式套接字的fd  @backlog   请求队列的长度,最大128  返回值: 成功返回0,失败返回-1    int accept(i

Linux网络编程之一

每日一结 一 网络基础知识 (一)IP地址 1.IP   :网络中一台主机唯一标识  2.组成 :网络号 + 主机号  3.IP 分类 最高位    第一个字节 A  1 + 3     0        [0-127]     B  2 + 2    10        [128-191]

Linux进程与线程之五

每日一结 一 共享内存 :内核空间预留出来的一块内存,用于进程间通信  (1)int shmget(key_t key, size_t size, int shmflg); 功能:获取共享内存段的ID  参数: @key    IPC_PRIVATE  或 ftok()  @size   申请的共享内存段大小 [4k的倍

Linux进程与线程之四

每日一结 一 传统的进程间通信  1.信号 : 异步进程间通信方式    信号是对中断机制的一种模拟  进程对信号处理方式: (1)忽略信号  SIGKILL ,SIGSTOP 不能忽略  (2)捕捉 : 信号到达的时候,执行信号处理函数  (3)缺省操作 : 系统默认的操作  大部分信号默认的操作都是杀死进程,SIGCHLD 进