mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-27 19:17:43 +00:00
ls: add selinux support
This commit is contained in:
parent
8487e12057
commit
4651a58b82
2 changed files with 22 additions and 6 deletions
|
@ -2752,17 +2752,13 @@ fn display_item_long(
|
|||
let is_acl_set = has_acl(item.display_name.as_os_str());
|
||||
write!(
|
||||
output_display,
|
||||
"{}{}{} {}",
|
||||
"{}{} {}",
|
||||
display_permissions(md, true),
|
||||
if item.security_context.len() > 1 {
|
||||
// GNU `ls` uses a "." character to indicate a file with a security context,
|
||||
// but not other alternate access method.
|
||||
"."
|
||||
} else {
|
||||
""
|
||||
},
|
||||
if is_acl_set {
|
||||
// if acl has been set, we display a "+" at the end of the file permissions
|
||||
} else if is_acl_set {
|
||||
"+"
|
||||
} else {
|
||||
""
|
||||
|
|
|
@ -4183,6 +4183,26 @@ fn test_ls_context2() {
|
|||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(feature = "feat_selinux")]
|
||||
fn test_ls_context_long() {
|
||||
if !uucore::selinux::is_selinux_enabled() {
|
||||
return;
|
||||
}
|
||||
let scene = TestScenario::new(util_name!());
|
||||
let at = &scene.fixtures;
|
||||
at.touch("foo");
|
||||
for c_flag in ["-Zl", "-Zal"] {
|
||||
let result = scene.ucmd().args(&[c_flag, "foo"]).succeeds();
|
||||
|
||||
let line: Vec<_> = result.stdout_str().split(" ").collect();
|
||||
assert!(line[0].ends_with("."));
|
||||
assert!(line[4].starts_with("unconfined_u"));
|
||||
let s: Vec<_> = line[4].split(":").collect();
|
||||
assert!(s.len() == 4);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(feature = "feat_selinux")]
|
||||
fn test_ls_context_format() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue