分页: 1 / 1
[已解决]如何向root所属文件夹写入文件
发表于 : 2012-04-29 20:37
由 xyy_xx
如题
正在写一个bash脚本。需要想/etc下写入一个配置文件。
尝试过cp mv
sudo cp,sudo mv
以及在tmp下生成文件再把owner和group换成root后弄到etc 下也不行
求解
Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-29 20:55
由 hanla

我也是小菜,不过我觉得应该是挂载/ 是以ro方式挂载的吧.remount 成rw,试一下.
Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-29 21:06
由 xyy_xx
hanla 写了:
我也是小菜,不过我觉得应该是挂载/ 是以ro方式挂载的吧.remount 成rw,试一下.
不好意思是etc这个目录,手拙敲快了。
谢谢各位了
Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-29 21:20
由 lilydjwg
贴上脚本先。
Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-29 21:37
由 YeLee
No such file or directory

你懂的。
Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-29 23:40
由 xyy_xx
lilydjwg 写了:贴上脚本先。
代码: 全选
_net_config_file='/tmp/wireless-cfg';
read -p "Your ESSID ==>"cw
if [ -f $_net_config_file ];then
sudo echo '' > $_net_config_file;
else
sudo touch $_net_config_file;
fi
sudo echo "ESSID='$cw'" >> $_net_config_file;
read -p "Please type your wireless_password==> " wireless_password
sudo echo "KEY='$wireless_password'" >> $_net_config_file;
sudo echo "INTERFACE='wlan0'" >> $_net_config_file;
sudo echo "IP='dhcp'" >> $_net_config_file;
sudo echo "SECURITY='wpa'">> $_net_config_file;
cat $_net_config_file;#测试输出一下内容
sudo mv $_net_config_file /ect/network.d/wireless.cfg;
Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-29 23:42
由 xyy_xx
YeLee 写了:No such file or directory

你懂的。
因为移动不过去 也复制不过去不知道为何会这样。很简单的一个问题,不知道卡在哪了短路所以上来问问

Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-30 0:19
由 lilydjwg
xyy_xx 写了:lilydjwg 写了:贴上脚本先。
代码: 全选
_net_config_file='/tmp/wireless-cfg';
read -p "Your ESSID ==>"cw
if [ -f $_net_config_file ];then
sudo echo '' > $_net_config_file;
else
sudo touch $_net_config_file;
fi
sudo echo "ESSID='$cw'" >> $_net_config_file;
read -p "Please type your wireless_password==> " wireless_password
sudo echo "KEY='$wireless_password'" >> $_net_config_file;
sudo echo "INTERFACE='wlan0'" >> $_net_config_file;
sudo echo "IP='dhcp'" >> $_net_config_file;
sudo echo "SECURITY='wpa'">> $_net_config_file;
cat $_net_config_file;#测试输出一下内容
sudo mv $_net_config_file /ect/network.d/wireless.cfg;
1. 末尾不需要分号;
2. sudo 不是这么用的。sudo 用 root 权限执行了 echo 语句。但是,重定向是 shell 管的,而 shell 是普通用户权限。你可以用 sudo sh -c "echo xxx > yyy"。
另,为什么不不在脚本里使用 sudo,而让用户使用 sudo your_script 呢?
Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-30 0:23
由 xyy_xx
lilydjwg 写了:xyy_xx 写了:lilydjwg 写了:贴上脚本先。
代码: 全选
_net_config_file='/tmp/wireless-cfg';
read -p "Your ESSID ==>"cw
if [ -f $_net_config_file ];then
sudo echo '' > $_net_config_file;
else
sudo touch $_net_config_file;
fi
sudo echo "ESSID='$cw'" >> $_net_config_file;
read -p "Please type your wireless_password==> " wireless_password
sudo echo "KEY='$wireless_password'" >> $_net_config_file;
sudo echo "INTERFACE='wlan0'" >> $_net_config_file;
sudo echo "IP='dhcp'" >> $_net_config_file;
sudo echo "SECURITY='wpa'">> $_net_config_file;
cat $_net_config_file;#测试输出一下内容
sudo mv $_net_config_file /ect/network.d/wireless.cfg;
1. 末尾不需要分号;
2. sudo 不是这么用的。sudo 用 root 权限执行了 echo 语句。但是,重定向是 shell 管的,而 shell 是普通用户权限。你可以用 sudo sh -c "echo xxx > yyy"。
另,为什么不不在脚本里使用 sudo,而让用户使用 sudo your_script 呢?
1写php习惯用;了
2脚本里面可以
代码: 全选
sudo sh -c "echo xxx > yyy"
3因为这个脚本里面还有其他的function是普通用户执行的不需要用到sudo
Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-30 0:45
由 lilydjwg
xyy_xx 写了:
3因为这个脚本里面还有其他的function是普通用户执行的不需要用到sudo
设计问题?
Re: 如何向root所属文件夹写入文件
发表于 : 2012-04-30 0:53
由 xyy_xx
lilydjwg 写了:xyy_xx 写了:
3因为这个脚本里面还有其他的function是普通用户执行的不需要用到sudo
设计问题?
嗯对,脚本有点儿乱,记录的是一些常用方法。通过参数来调用不同的方法。稍候空了还是分成不同的文件算了。
还是感谢你,写这么久脚本居然被路径给困这么久 晕死