命令行与shell编程系列之文件权限

命令行与shell编程系列文章目录

第一章 什么是命令行
第二章 文件权限
第三章 文件的处理
第四章 磁盘和文件系统
第五章 理解shell解析器和shell进程



前言

在linux系统中,系统必须要提供一套保护文件安全性的机制。在linux中用户账户是进入系统的第一道关卡,需要知道用户ID和用户密码。其中涉及到用户的创建和删除以及linux用户组的概念。具体介绍可查看《Linux命令行和shell脚本编程大全》等书籍

1. 用户的创建和删除

zhang:~$ sudo adduser  test1
sudo: unable to resolve host zhangguoting
Adding user `test1' ...
Adding new group `test1' (1001) ...
Adding new user `test1' (1001) with group `test1' ...
Enter new UNIX password: 
Retype new UNIX password: 
Sorry, passwords do not match
passwd: Authentication token manipulation error
passwd: password unchanged
Try again? [y/N] y
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for test1
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] 

zhang:~$ tail /etc/passwd
Daemon,,,:/:/bin/false
pulse:x:117:124:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:118:126:RealtimeKit,,,:/proc:/bin/false
saned:x:119:127::/var/lib/saned:/bin/false
usbmux:x:120:46:usbmux daemon,,,:/var/lib/usbmux:/bin/false
zhang:x:1000:1000:zhang,,,:/home/zhang:/bin/bash
mysql:x:121:129:MySQL Server,,,:/nonexistent:/bin/false
statd:x:122:65534::/var/lib/nfs:/bin/false
telnetd:x:123:130::/nonexistent:/bin/false
sshd:x:124:65534::/var/run/sshd:/usr/sbin/nologin
test1:x:1001:1001:,,,:/home/test1:/bin/bash

zhang:~$ sudo deluser  --remove-home  test1
sudo: unable to resolve host zhangguoting
Looking for files to backup/remove ...
Removing files ...
Removing user `test1' ...
Warning: group `test1' has no more members.
Done.

2. 组的创建删除以及添加用户

zhang:~$ tail /etc/group
pulse:x:124:
pulse-access:x:125:
rtkit:x:126:
saned:x:127:
zhang:x:1000:
sambashare:x:128:zhang
mysql:x:129:
telnetd:x:130:
test1:x:1001:
shared:x:1002:

zhang:~$ sudo delgroup  shared
sudo: unable to resolve host zhangguoting
Removing group `shared' ...
Done.

zhang:~$ sudo usermod  -G shared  test1 
zhang:~$ tail /etc/group
pulse:x:124:
pulse-access:x:125:
rtkit:x:126:
saned:x:127:
zhang:x:1000:
sambashare:x:128:zhang
mysql:x:129:
telnetd:x:130:
test1:x:1001:
shared:x:1002:test1

3. 修改文件权限和所属关系

zhang:~$ ls -alh file1 
-rw-rw-r-- 1 zhang zhang 0 4月  13 15:52 file1

上面的d表示这是目录
接下来3位字母一组共3组 分别是属主、属组和其他的文件权限
r - 可读
w - 可写
x = 可执行

zhang:~$ chmod  764 file1 
zhang:~$ ls -alh file1 
-rwxrw-r-- 1 zhang zhang 0 4月  13 15:52 file1

其中的764每一位数字是8进制的数字,分别对应rwx3位标志

上述测试在Ubuntu系统内,部分其他系统的命令行会有所差异,比如命令adduser 在其他系统对应的是useradd,其他命令也是一样的情况(实际上adduser和useradd是有较大区别)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux shell命令及脚本编程是基于Linux操作系统的命令环境下进编程和脚本开发的一种方式。通过这种方式,我们可以使用一系列预定义的命令和脚本语法来完成各种任务,例如自动化操作、批量处理等。 一个典型的Linux shell脚本编程实例是实现一个自动备份脚本。以下是该脚本的源码示例: ```bash #!/bin/bash # Automatic Backup Script # 定义备份目录和目标目录 backup_dir="/path/to/backup" target_dir="/path/to/target" # 创建备份目录 mkdir -p $backup_dir # 备份文件 backup_file="backup_$(date +%Y%m%d).tar.gz" # 根据当前日期生成备份文件名 tar -czf $backup_dir/$backup_file $target_dir # 将目标目录压缩成备份文件 # 检查备份是否成功并发送邮件通知 if [ $? -eq 0 ]; then # 如果备份成功 echo "Backup successful: $backup_file" # 在此处添加发送邮件的命令,例如使用sendmail或者mail等命令 else # 如果备份失败 echo "Backup failed" # 在此处添加发送邮件的命令,通知备份失败 fi ``` 该备份脚本首先定义了备份目录和目标目录的路径。然后,它创建了备份目录(如果不存在),接着使用`tar`命令将目标目录压缩成备份文件文件名以当前日期为前缀。最后,根据备份命令的执结果,判断备份是否成功并进相应的邮件通知。 这只是一个简单的示例,实际上,Linux shell脚本编程可以涵盖更广泛的应用范围,包括系统管理、日志分析、自动化部署等。掌握了Linux shell命令及脚本编程,我们可以更加高效地利用Linux操作系统进各种任务处理和工作流程优化。 ### 回答2: Linux shell是一种命令界面,用户可以直接在终端中输入命令来与操作系统进交互。而shell脚本编程则是用脚本语言编写一系列的命令,以便自动化执一些任务。 下面我们来介绍一个关于文件备份的实例。 假设我们有一个目录下的文件需要进定期备份。我们可以编写一个shell脚本来完成这个任务。 首先,我们需要创建一个名为backup.sh的脚本文件。在文件中输入以下内容: ``` #!/bin/bash backup_dir="/path/to/backup/folder" source_dir="/path/to/source/folder" date=$(date +%Y%m%d) backup_file="backup_$date.tar.gz" tar -czvf "$backup_dir/$backup_file" "$source_dir" ``` 以上是一个简单的文件备份脚本。首先我们定义了备份目录和源目录的路径,然后使用`date`命令来获取当前日期,并将其作为备份文件的一部分命名。最后,我们使用`tar`命令将源目录打包成一个压缩文件,并将其保存在备份目录下。 要执这个脚本,我们需要为脚本文件添加可执权限。在终端中使用`chmod +x backup.sh`命令即可。 然后,我们可以在终端中执脚本来进备份操作。只需要输入`./backup.sh`即可开始备份过程。备份文件将保存在指定的备份目录下,并带有日期作为文件名的一部分。 通过编写这个简单的shell脚本,我们可以实现文件备份的自动化。可以根据实际需求进修改和扩展,以适应不同的场景。这就是一个关于Linux shell命令及脚本编程实例的详解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值