sudo加入授权用户后使用命令报找不到命令错误

在linux使用sudo操作root权限的时候遇到与下面类似的问题, 1.先以root身份将能执行sudo命令的用户加入到sudo配置文件中 2.执行visudo,其实就是修改/etc/sudoers 3.添加用户,规则如下:

youuser            ALL=(ALL)                ALL
%youuser           ALL=(ALL)                ALL
youuser            ALL=(ALL)                NOPASSWD: ALL
%youuser           ALL=(ALL)                NOPASSWD: ALL

第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.

4.测试是否生效,sudo youuser cat /etc/sudoers 5.切换用户到被授权用户cmy

su cmy

6.输入密码后成功切换到cmy用户下 7.执行验证sudo用户是否配置好

sudo cat sudoers

如果能够打开sudoers证明sudo用户配置好了。 如果提示命令无效,则需要按下面的设置 Defaults !env_reset 和 .bashrc 文件 alias sudo=‘sudo env PATH=$PATH’ 8.最后注意一定要 source ~/.bashrc; !!!!!!! 否则配置不会生效

----------------------------------------------------分割线----------------------------------------------------

问题源于使用哈工大老师操作系统课程的环境时,运行run这个shell文件出现这样的情况:

----------------------------------------------------分割线---------------------------------------------------- 问题源于使用哈工大老师操作系统课程的环境时,运行run这个shell文件出现这样的情况:
----------------------------------------------------分割线---------------------------------------------------- 问题源于使用哈工大老师操作系统课程的环境时,运行run这个shell文件出现这样的情况:
song@ubuntu:~/workspace/oslab$ ./run
-bash: ./run: 权限不够
song@ubuntu:~/workspace/oslab$ sudo ./run
sudo: ./run:找不到命令

搜索网上有这样的解决过程

1.编辑文件 /etc/sudoers,将Defaults env_reset ,改为 Defaults !env_reset sudo vi /etc/sudoers Defaults !env_reset 2.编辑文件~/.bashrc sudo vi ~/.bashrc 在文件末尾添加新行,好吧在哪添加新行都成。 alias sudo=sudo env PATH=$PATH 添加完之后,再source一下 source ~/.bashrc

但是结果如下:

song@ubuntu:~/workspace/oslab$ ./run
bash: ./run: 权限不够
song@ubuntu:~/workspace/oslab$ sudo ./run
env: "./run": 权限不够

这才想到是不是文件本身没有执行权限,一查果真如此:

root@ubuntu:/home/song/workspace/oslab# ll
总用量 74220
drwxrwxr-x  5 song song     4096 Mar 14 21:54 ./
drwxrwxr-x  3 song song     4096 Mar 14 14:51 ../
drwxrwxr-x  2 song song     4096 Mar 14 20:19 bochs/
-rw-rw-r--  1 song song    18135 Mar 14 20:20 bochsout.txt
-rw-rw-r--  1 song song      115 Mar 14 14:48 dbg-asm
-rw-rw-r--  1 song song      119 Mar 14 14:48 dbg-c
-rw-rw-r--  1 song song 12423461 Mar 14 14:48 gdb
-rw-rw-r--  1 song song       75 Mar 14 14:48 gdb-cmd.txt
drwxrwxr-x  2 song song     4096 Mar 14 14:48 hdc/
-rw-rw-r--  1 song song 63504384 Mar 14 20:20 hdc-0.11.img
drwxrwxr-x 10 song song     4096 Mar 14 15:13 linux-0.11/
-rw-rw-r--  1 song song      126 Mar 14 14:48 mount-hdc
-rw-rw-r--  1 song song      254 Mar 14 21:07 run
-rw-rw-r--  1 song song      268 Mar 14 14:48 rungdb

使用chmod命令给文件加权限

chmod的语法格式如下:

chmod [who] [opt] [mode] 文件/目录名

其中who表示对象,是以下字母中的一个或组合:

u:表示文件所有者 g:表示同组用户 o:表示其它用户 a:表示所有用户

opt则是代表操作,可以为: +:添加某个权限 -:取消某个权限 =:赋予给定的权限,并取消原有的权限

mode则代表权限: r:可读 w:可写 x:可执行

果断chmod +x run

-rwxrwxr-x  1 song song      254 Mar 14 21:07 run*
经验分享 程序员 微信小程序 职场和发展