summaryrefslogtreecommitdiff
path: root/usr/src/lib/liblaadm/common/liblaadm.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/liblaadm/common/liblaadm.c')
-rw-r--r--usr/src/lib/liblaadm/common/liblaadm.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/usr/src/lib/liblaadm/common/liblaadm.c b/usr/src/lib/liblaadm/common/liblaadm.c
index 0beeee27da..3b23a5999d 100644
--- a/usr/src/lib/liblaadm/common/liblaadm.c
+++ b/usr/src/lib/liblaadm/common/liblaadm.c
@@ -52,31 +52,31 @@
* <db-file> ::= <groups>*
* <group> ::= <key> <sep> <policy> <sep> <nports> <sep> <ports> <sep>
* <mac> <sep> <lacp-mode> <sep> <lacp-timer>
- * <sep> ::= ' ' | '\t'
- * <key> ::= <number>
+ * <sep> ::= ' ' | '\t'
+ * <key> ::= <number>
* <nports> ::= <number>
* <ports> ::= <port> <m-port>*
* <m-port> ::= ',' <port>
- * <port> ::= <devname>
+ * <port> ::= <devname>
* <devname> ::= <string>
* <port-num> ::= <number>
* <policy> ::= <pol-level> <m-pol>*
* <m-pol> ::= ',' <pol-level>
* <pol-level> ::= 'L2' | 'L3' | 'L4'
- * <mac> ::= 'auto' | <mac-addr>
+ * <mac> ::= 'auto' | <mac-addr>
* <mac-addr> ::= <hex> ':' <hex> ':' <hex> ':' <hex> ':' <hex> ':' <hex>
* <lacp-mode> ::= 'off' | 'active' | 'passive'
* <lacp-timer> ::= 'short' | 'long'
*/
#define LAADM_DEV "/devices/pseudo/aggr@0:" AGGR_DEVNAME_CTL
-#define LAADM_DB "/etc/aggregation.conf"
-#define LAADM_DB_TMP "/etc/aggregation.conf.new"
+#define LAADM_DB "/etc/dladm/aggregation.conf"
+#define LAADM_DB_TMP "/etc/dladm/aggregation.conf.new"
#define LAADM_DB_LOCK "/tmp/aggregation.conf.lock"
#define LAADM_DB_PERMS S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
-#define LAADM_DB_OWNER 0
-#define LAADM_DB_GROUP 1
+#define LAADM_DB_OWNER 15 /* "dladm" UID */
+#define LAADM_DB_GROUP 3 /* "sys" GID */
/*
* The largest configurable aggregation key. Because by default the key is
@@ -866,11 +866,13 @@ i_laadm_walk_rw_db(int (*fn)(void *, laadm_grp_attr_db_t *),
attr.lt_ports = NULL;
}
- if (fchmod(nfd, LAADM_DB_PERMS) == -1)
- goto failed;
+ if (getuid() == 0 || geteuid() == 0) {
+ if (fchmod(nfd, LAADM_DB_PERMS) == -1)
+ goto failed;
- if (fchown(nfd, LAADM_DB_OWNER, LAADM_DB_GROUP) == -1)
- goto failed;
+ if (fchown(nfd, LAADM_DB_OWNER, LAADM_DB_GROUP) == -1)
+ goto failed;
+ }
if (fflush(nfp) == EOF)
goto failed;