编译环境:ubuntu18
交叉编译链:gcc-linaro-arm-linux-gnueabihf-4.7-.03-0313_linux/bin
sudo下载网址:https://www.sudo.ws/news.html
这里使用的sudo版本:sudo-1.8.9-p5
移植对象:ARM开发板
默认条件:已安装好交叉编译链
~~~~~~~~~~~~~目录~~~~~~~~~~~~~~~
1 下载sudo压缩文件2 进行解压3 创建用于安装sudo的文件夹4 configure5 编译和安装6 移植文件7 修改文件权限8 添加配置文件1 下载sudo压缩文件
sudo下载网址:https://www.sudo.ws/news.html
这里下载的sudo-1.8.9-p5,不知道这些版本有什么区别。。。就随便下了一个老一点的。
2 进行解压
#tar -xvf <filename>tar -xvf sudo-1.8.9p5.tar.gz
3 创建用于安装sudo的文件夹
待会安装时就会把文件保存在这里面。移植文件就是从这里面去拿。然后我们在被移植的板子中调用sudo指令时会来这个路径下找文件。所以我这里把路径放在根目录下
cd /usr/localmkdir sudo
4 configure
这里使用 configure,make,make install,将其安装到ubuntu下面,然后再复制安装目录中的内容到ARM开发板中。
其实我不想使用make install指令安装到我的ubuntu下面的,但是使用make编译完了之后不知道在哪里去找文件,所以就只能安装了。
进入sudo-1.8.9p5目录中,运行configure,配置编译环境。
# ./configure --prefix=<待安装目录绝对路径> CC=<交叉编译链-gcc文件绝对路径> AR=<交叉编译链-AR文件绝对路径> --host=<编译的主机名>#--host参数还没搞懂有什么用,感觉随便输,不影响cd .../sudo-1.8.9p5./configure --prefix=/usr/local/sudo CC=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-.03-0313_linux/bin/arm-linux-gnueabihf-gcc AR=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-.03-0313_linux/bin/arm-linux-gnueabihf-ar --host=arm-linux-gnueabihf
5 编译和安装
切换到root用户下进行编译和安装,不然会安装失败,
sudo su rootmake & make install
6 移植文件
3中创建的目录下将会有下面5个文件夹,我们只需要bin/sudo和libexec.
bin include libexec sbin share
linux下传文件有很多方式,所以这里就没有写出命令
#拷贝bin/sudo到开发板的/usr/bin/中#在开发板的/usr/local/下创建文件夹sudo(和第三步在ubuntu下创建的目录路径一样)#拷贝libexec文件夹到开发板的/usr/local/sudo文件夹中
7 修改文件权限
chmod u+s /usr/bin/sudochmod 677 /usr/bin/sudo
8 添加配置文件
#在开发板中操作cd /etcvi sudoers#在sudoers中写下面内容ALL ALL=(ALL) ALL