如何在Linux中使用sudo和chown命令? (linux sudo chown)
Linux操作系统作为一个开源免费系统,拥有强大的命令行操作能力,而sudo和chown命令是其中常见的系统命令。本文将介绍如何在Linux中正确使用这两个命令。
一、sudo命令
sudo命令是Linux系统中使用最频繁的命令之一,它可以让普通用户在执行需要管理员权限的命令时,暂时提升自己的权限到管理员级别。使用sudo命令需要注意以下几点:
1. sudo命令的语法如下:
“`
sudo [选项] [命令]
“`
2. 如果不确定需要使用sudo的命令,可以先尝试在普通用户的权限下执行该命令,如果提示无权限,则可以使用sudo命令执行。
3. 如果需要连续执行多个需要sudo权限的命令,可以使用”sudo su”命令切换至管理员账户,然后在管理员账户下执行需要的命令。
4. 在使用sudo命令时,需要输入用户密码,确保只有管理员账户才能执行敏感操作。
5. 在使用sudo命令时,应该在使用完毕之后尽快恢复普通用户权限,以避免无意中误操作系统,造成不必要的损失。
二、chown命令
chown命令是Linux系统中的文件所有权管理命令,它可以修改一个文件或目录的所有者和所属组。使用chown命令需要注意以下几点:
1. chown命令的语法如下:
“`
chown [选项] 所有者[:所属组] 文件名/目录名
“`
其中,所有者和所属组可以是用户名或组名,如果不指定所属组,则默认为文件/目录原本的所属组。
2. chown命令只能由文件所有者或管理员权限的用户执行,否则会返回“Operation not permitted”错误。
3. 在使用chown命令时,应该注意避免修改系统文件的所有者和所属组,以免影响系统的正常运行。
4. 使用chown命令修改文件或目录的所有者和所属组时,应该先确认当前用户拥有足够的权限,并备份文件或目录以防误操作。
三、sudo和chown命令的注意事项
1. 在使用sudo和chown命令时,应该谨慎操作,避免意外修改系统配置或重要文件,导致系统无法正常运行。
2. 在使用sudo和chown命令时,需要对操作进行确认,确保只有需要修改的文件或目录被修改,避免修改错误的文件或目录。
3. 在使用sudo和chown命令时,需要备份文件或目录,以应对误操作及其造成的后果,避免不必要的损失。
四、结语
本文介绍了如何在Linux中正确使用sudo和chown命令,希望读者可以通过本文更好地掌握这两个常见的系统命令,在实际应用中避免不必要的失误。
相关问题拓展阅读:
- linux如何给文件或目录添加apache权限
- linux设置sudo权限
linux如何给文件或目录添加apache权限
linux如何给文件或目录添加apache权限
在LAMP环境中,测试一个简单的php文件上传功能时,发现/var/log/apache2/error.log中出现如下php警告:
PHP Warning: move_uploaded_file(/home/leotody/.jpeg): failed to open stream: Permission denied in /var/www/upload_file.php on line 25, referer:
PHP Warning: move_uploaded_file(): Unable to move ‘/tmp/phps05ssU’ to ‘/home/leotody/.jpeg’in /var/www/upload_file.php on line 25, referer:
提示没有访问权限,文件上传的代码如下:
if (file_exists(“upload/” . $_FILES))
{
echo $_FILES . ” already exists. “;
}
else
{
if(move_uploaded_file($_FILES, “upload/”铅铅.$_FILES))
{
echo “Stored in: ” . “upload/” . $_FILES;
}
else
{
echo “move error!”;
}
}
页面中显示”move error!”,说明move_uploaded_file()函数执行失败。
通过查找资料,发现网上有说是selinux启动的原因,检查系统并未启动selinux,查看upload目录默认权限ls -ld upload,结果为755:
drwxr-xr-x 2 root root31 10:59 upload
将upload目录权限改为777,sudo chmod 777 upload,再测试槐粗好上传功能成功。但这种修改权限的方法并不安全。
故可以改upload目录的拥有者为www-data(即apache),sudo chown -R www-data:www-data upload,然后再测试上传功能成功。
drwxr-xr-x 2 www-data www-data31 10:59 upload
拓展阅读
Linux
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络凳配为核心的设计思想,是一个性能稳定的`多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等
常用命令及技巧
1、date:打印或者设置系统的日期和时间
2、stty-a:可以查看或者打印控制字符(Ctrl-C、Ctrl-D、Ctrl-Z等)
3、passwd:用passwd-h查看
4、login、 logout : shell的登录和注销命令
5、more,less,head tail:显示或部分显示文件内容
6、lp/lpstat/cancel,lpr/lpq/lprm:打印文件
7、chmod u+x:更改文件权限
8、rm -fr dir:删除非空目录
9、cp -R dir:拷贝目录
10、fg jobid:可以将一个后台进程放到前台
11、kill的作用:send a signal to a process、eg:kill-9发送的是SIG_KILL信号,具体发送什么信号可以通过man kill查看、
12、ps的用法,ps-e或ps-o pid,ppid,session,tpgid,comm(其中session显示的sessionid,tpgid显示前台进程组id,comm显示命令名称)
13 ip a 查看ip地址信息的命令
14 zcat /proc/config.gz > config 到内核配置文件
linux设置sudo权限
Linux用户配置sudo的工作过程如下:
1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
3,若密码输入成功,则开始执行sudo后续的命令
4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)
5,若欲切换的身份与执行者的身份相耐改同,也不需要输入密码
visudo使用vi打开/etc/sudoers文件,但是在保存退出时,visudo会检查内部语法,避免用户输入错误信息
visudo需要root权限
$ visudo
visudo:/etc/sudoers:权限不够
visudo:/etc/sudoers:权限不够
使用visudo命令打开sudo配置文件
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
## 该文件允许特定用户像root用户一样使用各种各样的命令,而不需要root用户的密码
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
## 在文件的底部提供了很多相关命令的示例以供选择,这些示例都可以被特定用户或
## 用户组所使用
##
## This file must be edited with the ‘visudo’ command.
## 该文件必须使用”visudo”命令编辑
## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using
## wildcards for entire domains) or IP addresses instead.
## 对于一组服务器,你可能会更喜欢使用主机名(可能是全域名的通配符)
## 、或IP地址,这时可以配置主机别名
# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = tp, tp2
## User Aliases
## These aren’t often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file – just use %groupname
## rather than USERALIAS
## 这并不很常用,因为你可以通过使用组来代替一组用户的别名
# User_Alias ADMINS = jith, mikem
## Command Aliases
## These are groups of related commands…
## 指定一系列相互关联的命令(昌洞判当然可以是一个)的别名,通过赋予该别名sudo权限,
## 可以通过sudo调用所有别名包含的命令,下面是一些示例
## Networking 网络操作相关命令别名颤搭
# Cmnd_Alias NETWORKING = /in/route, /in/ifconfig, /bin/ping, /in/dhclient
, /usr/bin/net, /in/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /in/iwconfig
, /in/mii-tool
## Installation and management of software 软件安装管理相关命令别名
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
## Services 服务相关命令别名
# Cmnd_Alias SERVICES = /in/service, /in/chkconfig
## Updating the locate database 本地数据库升级命令别名
# Cmnd_Alias LOCATE = /usr/bin/updatedb
## Storage 磁盘操作相关命令别名
# Cmnd_Alias STORAGE = /in/fdisk, /in/sfdisk, /in/parted, /in/partprobe
, /bin/mount, /bin/umount
## Delegating permissions 代理权限相关命令别名
# Cmnd_Alias DELEGATING = /usr/in/visudo, /bin/chown, /bin/chmod, /bin/chgrp
## Processes 进程相关命令别名
# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
## Drivers 驱动命令别名
# Cmnd_Alias DRIVERS = /in/modprobe
# Defaults specification
#
# Disable “ssh hostname sudo “, because it will show the password in clear.
#You have to run “ssh -t hostname sudo “.
# 一些环境变量的相关配置,具体情况可见man soduers
Defaults requiretty
Defaults env_reset
Defaults env_keep = “COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS”
Defaults env_keep += “MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE”
Defaults env_keep += “LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES”
Defaults env_keep += “LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE”
Defaults env_keep += “LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY”
Defaults secure_path = /in:/bin:/usr/in:/usr/bin
## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## 下面是规则配置:什么用户在哪台服务器上可以执行哪些命令(sudoers文件可以在多个系统上共享)
## Syntax(语法):
##
## user MACHINE=COMMANDS 用户 登录的主机=(可以变换的身份) 可以执行的命令
##
## The COMMANDS section may have other options added to it.
## 命令部分可以附带一些其它的选项
##
## Allow root to run any commands anywhere
## 允许root用户执行任意路径下的任意命令
root ALL=(ALL) ALL
## Allows members of the ‘sys’ group to run networking, software,
## service management apps and more.
## 允许sys中户组中的用户使用NETWORKING等所有别名中配置的命令
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE
, DRIVERS
## Allows people in group wheel to run all commands
## 允许wheel用户组中的用户执行所有命令
%wheel ALL=(ALL) ALL
## Same thing without a password
## 允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令
# %wheel ALL=(ALL) NOPASSWD: ALL
## Allows members of the users group to mount and unmount the
## cdrom as root
## 允许users用户组中的用户像root用户一样使用mount、unmount、chrom命令
# %users ALL=/in/mount /mnt/cdrom, /in/umount /mnt/cdrom
## Allows members of the users group to shutdown this system
## 允许users用户组中的用户关闭localhost这台服务器
# %users localhost=/in/shutdown -h now
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
## 读取放置在/etc/sudoers.d/文件夹中的文件(此处的#不意味着这是一个声明)
关于linux sudo chown的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。