Ubuntu目录和权限(创建目录,更改目录所有者,更改目录权限)

本文介绍了Ubuntu系统中常用的三个命令:创建目录(mkdir)、更改权限(chmod)和更改所有者(chown)。通过实例展示了如何使用这些命令进行目录管理、文件权限设置及文件所有者的更改。

1.Ubuntu创建目录
命令格式:
mkdir [选项] 目录...
命令功能:
通过 mkdir 命令可以实现在指定位置创建以指定的名称命名的目录。创建目录的用户必须对所创建目录的父目录具有写权限。并且,所创建的目录不能与其父目录中的其他目录重名(区分大小写)。
命令参数:
-m,设定权限<模式> (类似 chmod)
-p,递归建立多级目录;
-v,显示信息
–help 显示此帮助信息并退出
–version 输出版本信息并退出
实例:
mkdir test创建test目录
mkdir test1 test2 test3同时创建多个目录
mkdir –p test1 test12 test123 递归创建目录
mkdir –m 777 test 创建一个设定权限的目录
mkdir –v test1 test2 test3创建目录的同时,提示创建过程信息

2.Ubutnu更改权限
命令格式:
chmod [-cfvR] [--help] [--version] mode file…
命令功能:
Linux/Unix 的文件调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。
命令参数:
mode : 权限设定字串,格式如下 :[ugoa...][[+-=][rwxX]…][,...],其中
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群组(group),o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是子目录或者该文件已经被设定过为可执行。
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本
实例:
chmod ugo+r file1.txtchmod a+r file1.txt) 将文件 file1.txt 设为所有人皆可读取
chmod ug+w,o-w file1.txt file2.txt将文件 file1.txt 与 file2.txt 设为拥有者及同一个群组可写入,以外用户不可写入
chmod -R a+r *将当前目录下的所有文件与子目录设为任何人可读取

此外chmod也可以用数字来表示权限,语法为:
chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
实例:
chmod 777 file1.txtfile1.txt对所有用户开放所欲偶权限

3.Ubuntu更改所有者
命令格式:
chown [-cfhvR] [–help] [–version] user[:group] file…
命令功能:
更改某个文件或目录的属主和属组。
命令参数:
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
实例:
chown wang shiyan.c把文件shiyan.c的所有者改为wang
chown - R wang.users /his把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users

Ubuntu 中,要将目录权限修改为 **所有人均可读**(包括目录本身及其内容),可通过 `chmod` `chown` 命令实现,同时需注意目录的 **执行权限(x)** 对访问的重要性。以下是具体方法示例: --- ### **1. 核心概念** #### **(1) 权限类型** - **读(r)**:允许查看目录内容(如 `ls`)。 - **写(w)**:允许修改目录内容(如创建/删除文件)。 - **执行(x)**:允许进入目录(如 `cd`)。 - **对目录的特殊要求**: 即使拥有读权限(`r`),若无执行权限(`x`),仍无法访问目录内容。因此需同时设置 `r-x`。 #### **(2) 权限表示法** - **符号模式**:`u`(所有者)、`g`(所属组)、`o`(其他用户)、`a`(所有用户)。 - **数字模式**:`4`(读)、`2`(写)、`1`(执行),组合为 `755`(`rwxr-xr-x`)。 --- ### **2. 修改目录权限的方法** #### **(1) 使用 `chmod` 递归修改目录及其内容** ```bash chmod -R a+rX /path/to/directory ``` - **参数说明**: - `-R`:递归处理目录下所有文件目录。 - `a+rX`: - `a`:所有用户(所有者、组、其他)。 - `r`:读权限。 - `X`:仅对目录设置执行权限(文件不受影响)。 - **示例**: ```bash chmod -R a+rX /var/www/html ``` - **效果**: - 目录:`drwxr-xr-x`(所有用户可读、进入)。 - 文件:`-rw-r--r--`(所有用户可读,除非原文件无执行权限)。 #### **(2) 精确控制权限(推荐)** 若需更精细控制,可分别设置目录文件的权限: ```bash # 设置目录权限为 755(rwxr-xr-x) find /path/to/directory -type d -exec chmod 755 {} \; # 设置文件权限为 644(rw-r--r--) find /path/to/directory -type f -exec chmod 644 {} \; ``` - **适用场景**: 避免文件被误赋执行权限(如脚本文件)。 --- ### **3. 修改目录所有者(可选)** 若需同时更改目录所有者(如从 `root` 改为 `www-data`): ```bash sudo chown -R www-data:www-data /path/to/directory ``` - **参数说明**: - `-R`:递归修改。 - `www-data:www-data`:用户:组。 --- ### **4. 验证权限修改** #### **(1) 检查目录权限** ```bash ls -ld /path/to/directory ``` - **示例输出**: ``` drwxr-xr-x 2 www-data www-data 4096 Jan 1 10:00 /var/www/html ``` - `drwxr-xr-x`:所有用户可读、进入。 #### **(2) 检查文件权限** ```bash ls -l /path/to/directory/file.txt ``` - **示例输出**: ``` -rw-r--r-- 1 www-data www-data 123 Jan 1 10:00 file.txt ``` - `-rw-r--r--`:所有用户可读。 --- ### **5. 常见问题与解决** | **问题** | **解决方案** | |------------------------------|-----------------------------------------------------------------------------| | 修改后仍无法访问目录 | 检查父目录是否有执行权限(`cd .. && ls -ld /path/to/parent`) | | 文件被误赋执行权限 | 使用 `find -type f -exec chmod 644 {} \;` 移除文件执行权限 | | 权限修改后未生效 | 确认是否以 `sudo` 执行(如目录属主为 `root` 时需提权) | | 需保留原有权限的特定文件 | 使用 `chmod` 单独调整,而非递归操作 | --- ### **6. 安全注意事项** 1. **避免过度开放**: - 仅对必要目录设置 `a+rX`,避免泄露敏感信息(如 `/etc`、用户家目录)。 2. **Web 服务器场景**: - 若目录用于 Web 服务(如 Apache/Nginx),确保仅开放所需权限: ```bash chmod -R 755 /var/www/html # 目录 chmod -R 644 /var/www/html/* # 文件 ``` 3. **SELinux/AppArmor**: - 若系统启用 SELinux,需额外设置上下文: ```bash sudo chcon -R -t httpd_sys_content_t /var/www/html ``` --- ### **7. 完整示例** #### **(1) 开放 `/shared` 目录供所有人读取** ```bash # 递归设置目录为 755,文件为 644 sudo find /shared -type d -exec chmod 755 {} \; sudo find /shared -type f -exec chmod 644 {} \; # 验证 ls -lR /shared | head -5 # 查看前5项权限 ``` #### **(2) 仅开放目录浏览,禁止写入** ```bash # 设置目录为 555(r-xr-xr-x),文件为 444(r--r--r--) sudo find /shared -type d -exec chmod 555 {} \; sudo find /shared -type f -exec chmod 444 {} \; ``` --- ### **8. 总结命令表** | **需求** | **命令** | |------------------------------|---------------------------------------------------------------------------| | 递归开放目录及内容可读 | `chmod -R a+rX /path` | | 精确控制目录为 755、文件为 644 | `find /path -type d -exec chmod 755 {} \; && find /path -type f -exec chmod 644 {} \;` | | 修改目录所有者 | `sudo chown -R user:group /path` | | 验证权限 | `ls -ld /path`(目录) + `ls -l /path/file`(文件) | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值