修改umask的值,让新建的文件权限为rw-r----- 请在root目录下编写1.sh文件实现,实现修改掩码的功能。 注: 使用vi工具编写1.sh文件,然后输入umask XXX 然后保存退出 给1.sh文件运行权限
时间: 2024-10-12 19:10:16 浏览: 28
要创建一个名为`1.sh`的shell脚本,在根目录(通常指`/`目录)下,你可以按照以下步骤操作:
1. 打开终端并切换到根目录:
```
cd /
```
2. 使用文本编辑器`vi`创建一个新的文件,比如`1.sh`:
```
vi 1.sh
```
3. 进入`vi`编辑模式,按下`i`键进入插入模式。在此模式下,输入以下内容:
```sh
#!/bin/bash
umask 0700 # 设置新的umask值为rw-r-----
echo "New files will have permissions: rw-r-----"
```
按`Esc`键回到正常模式,然后按`:w`保存并退出(如果没改动直接按`q!`也可以退出,但会提示是否保存更改)。
4. 接下来需要给这个脚本添加执行权限,可以使用`chmod`命令:
```
chmod +x 1.sh
```
这将允许当前用户执行该脚本。
现在,当你在终端里运行`./1.sh`时,它将会显示新文件默认的权限设置,并应用新的umask值。
相关问题
linux系统设置umask 027或UMASK 027,将缺省访问权限设置为750在系统中怎么配置
Linux 系统中的 umask 变量是一个八进制数,用于控制新创建文件和目录的默认权限。当你设置 umask 为 027 时,它意味着:
- 文件将拥有:rw-rw-r_ (644) 的权限,即所有者有读写权限,同组用户可以读写,其他人只有读取权限。
- 目录将拥有:drwxr-x--- (750) 的权限,即所有者有读写执行权限,同组用户和其他人只有执行权限。
要在 Linux 中配置这个 umask 设置,通常是在创建新用户的 shell 启动脚本 (.bashrc 或 .bash_profile) 或全局配置文件(如 /etc/profile 或 ~/.bash_login)中做设置。以下是两个常见的方法:
1. 对于用户级别的设置,在终端中运行:
```
echo "export.umask=027" >> ~/.bashrc
source ~/.bashrc
```
这样每次登录到该用户时都会应用新的 umask 设置。
2. 对于全局配置,编辑 `/etc/profile` 或者如果用户不是 root,需要编辑每个用户的 `.bashrc`:
```sh
# 在/etc/profile 或 ~/.bashrc 中添加:
umask 027
```
然后重启Shell或者运行 `source /etc/profile` 或 `source ~/.bashrc` 使更改生效。
请注意,系统管理员(root 用户)可能会直接修改系统的 umask 设置,这会影响到所有用户。在操作前确认权限,并理解 umask 设置对整个系统的影响。
-bash: ./start.sh: Permission denied
当你尝试运行一个.sh脚本时,如果看到 `-bash: ./start.sh: Permission denied` 错误提示,意味着你没有足够的权限来执行该脚本。这是因为操作系统限制了你的账户对脚本的访问权限。通常有以下几种解决方法:
1. **检查文件权限**:使用 `ls -l start.sh` 命令检查脚本的权限。如果显示的是 `-rw-r-----` 或 `-rwxr-xr-x` 类型(前三位代表所有者权限,中间三位代表组内成员权限,最后三位代表其他人权限),表示只有文件所有者和所在组才有执行权限。如果你不是所有者,需要将所有者设置为你,或者增加对该文件的执行权限。
```bash
sudo chmod +x start.sh
```
2. **使用sudo**:如果是root用户执行普通用户的脚本,可以尝试添加 `sudo` 前缀:
```bash
sudo ./start.sh
```
输入密码后,你会获得执行权限。
3. **改变所属组**:如果你不想让所有用户都直接执行,可以将文件的所属组改为跟你同组,然后再试:
```bash
chown your_username:start.sh
```
4. **修改umask**:如果你希望默认创建的文件都有执行权限,可以在创建时就设置合适的umask。但这个方法可能会带来安全隐患,所以仅在理解风险后使用。
如果以上方法都不能解决问题,那可能是脚本本身的问题,比如文件路径不对,或者脚本内容有问题导致无法执行。请检查脚本的内容以及权限设置是否正确。
阅读全文