gentoo hardened emerge报 setexec(con)错误

来源:互联网 发布:大学专科本科网络教育 编辑:程序博客网 时间:2024/05/16 05:20

gentoo hardened的系统,selinux运行在permissive mode。emerge一个软件,开始就报这么一个错误:

Traceback (most recent call last):

  File "/usr/lib/portage/pym/_emerge/EbuildFetcher.py", line 186, in _spawn
    allow_missing_digests=allow_missing):
  File "/usr/lib/portage/pym/portage/package/ebuild/fetch.py", line 491, in fetch
    if _userpriv_test_write_file(mysettings, write_test_file):
  File "/usr/lib/portage/pym/portage/package/ebuild/fetch.py", line 121, in _userpriv_test_write_file
    returncode = _spawn_fetch(settings, args)
  File "/usr/lib/portage/pym/portage/package/ebuild/fetch.py", line 89, in _spawn_fetch
    rval = spawn_func(args, env=settings.environ(), **kwargs)
  File "/usr/lib/portage/pym/portage/_selinux.py", line 105, in wrapper_func
    setexec(con)
  File "/usr/lib/portage/pym/portage/_selinux.py", line 79, in setexec
    if selinux.setexeccon(ctx) < 0:

OSError: [Errno 22] Invalid argument


google只有一个搜索结果http://forums.gentoo.org/viewtopic-t-863567-start-0.html,gentoo的 bug 355745也是这个问题。

大意就是虽然在permissive模式下,但是有些操作还是会被selinux拒绝的。

emerge只能以sysadm_r运行。需要

newrole -r sysadm_r 

变换到到sysadm_r的role。

我普通用户su到root的。没法变换到sysadm_r。只能用root登录以后再换,再emerge就OK了。

原创粉丝点击